begin process at 2012 05 27 19:29:02
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Application

 > SUPRIMER SHM SEM MSGQUEUE

SUPRIMER SHM SEM MSGQUEUE


 Description

Vous travaillez avec les IPC sous Unix? Vous vous plantez et vos files de messages, vos shared memory ou vos semaphores ne sont pas supprimés? Voici une petite source sans prétention qui nettoie tout sa pour vous.

Source

  • #include <stdio.h>
  • #include <stdlib.h>
  • // Semaphores
  • #include <sys/types.h>
  • #include <sys/ipc.h>
  • #include <sys/sem.h>
  • // Shm
  • #include <sys/shm.h>
  • // Msg Queue
  • #include <sys/msg.h>
  • int main (int argc,char *argv[])
  • {
  • int sem, shm, msq, ret;
  • if (argc != 4)
  • {
  • printf("Entrez l'ID de la file de Message: ");
  • scanf("%d",&msq);
  • printf("Entrez l'ID de la SHM: ");
  • scanf("%d",&shm);
  • printf("Entrez l'ID du Semaphore: ");
  • scanf("%d",&sem);
  • }
  • else
  • {
  • msq=atoi(argv[1]);
  • shm=atoi(argv[2]);
  • sem=atoi(argv[3]);
  • }
  • printf("\n");
  • if(msq!=0)
  • {
  • printf("Suppression de la MSG Queue");
  • ret=msgctl(msq, IPC_RMID, 0);
  • if(ret==-1)
  • printf("\t\t\t[!!]\n");
  • else
  • printf("\t\t\t[Ok]\n");
  • }
  • if(shm!=0)
  • {
  • printf("Suppression de la SHM");
  • ret=shmctl(shm, IPC_RMID, 0);
  • if(ret==-1)
  • printf("\t\t\t[!!]\n");
  • else
  • printf("\t\t\t[Ok]\n");
  • }
  • if(sem!=0)
  • {
  • printf("Suppression du Semaphore");
  • ret=semctl(sem, 0, IPC_RMID, 0);
  • if(ret==-1)
  • printf("\t\t[!!]\n");
  • else
  • printf("\t\t[Ok]\n");
  • }
  • exit(0);
  • }
#include <stdio.h>
#include <stdlib.h>

// Semaphores
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>

// Shm
#include <sys/shm.h>

// Msg Queue
#include <sys/msg.h>

int main (int argc,char *argv[])
{
	int sem, shm, msq, ret;

	if (argc != 4)
	{
		printf("Entrez l'ID de la file de Message: ");
		scanf("%d",&msq);
		printf("Entrez l'ID de la SHM: ");
		scanf("%d",&shm);
		printf("Entrez l'ID du Semaphore: ");
		scanf("%d",&sem);
	}
	else
	{
		msq=atoi(argv[1]);
		shm=atoi(argv[2]);
		sem=atoi(argv[3]);
	}

	printf("\n");

	if(msq!=0)
	{
		printf("Suppression de la MSG Queue");
		ret=msgctl(msq, IPC_RMID, 0);
		if(ret==-1)
			printf("\t\t\t[!!]\n");
		else
			printf("\t\t\t[Ok]\n");
	}
	if(shm!=0)
	{
		printf("Suppression de la SHM");
		ret=shmctl(shm, IPC_RMID, 0);
		if(ret==-1)
			printf("\t\t\t[!!]\n");
		else
			printf("\t\t\t[Ok]\n");
	}
	if(sem!=0)
	{
		printf("Suppression du Semaphore");
		ret=semctl(sem, 0, IPC_RMID, 0);
		if(ret==-1)
			printf("\t\t[!!]\n");
		else
			printf("\t\t[Ok]\n");
	}

	exit(0);
}

 Conclusion

Utilisation:
cc -o IpcKill main.c
IpcKill 123 456 789
avec:
123=id Msg Queue
456=id Shm
789=id Semaphore

Un 0 ignorera l'élement.
Ex:
IpcKill 0 0 123
Ne supprimera que le semaphore 123

Pour obtenir les id, utilisez la commande "ipcs | grep $USER"


 Sources de la même categorie

Source avec Zip Source avec une capture PROGRAMME DE SUDOKU par AffreuxJojp
Source avec Zip EVALUATEUR D'EXPRESSION ARITHMÉTIQUE par matrx180vTitanium
Source avec Zip Source avec une capture QBIBLIO GESTION DES PRÊTS par conatic
Source avec Zip Source avec une capture QL-CHATROOM V 1.0 par mature
Source avec Zip Source avec une capture GEOLOCALISATION par ganjarasta

 Sources en rapport avec celle ci

Source avec Zip LES ENCHÈRES par mohtouati
Source avec Zip CLIENT SERVEUR LINUX SOCKET PIPE SEMAPHORE MUTEX FICHIER TEX... par fredzool
Source avec Zip PETIT CLIENT SERVEUR (SANS PARTIE RESEAU) UTILISANT LES IPC ... par Manolo76000
UTILISATION SIMPLE D'UNE MÉMOIRE PARTAGÉE SOUS LINUX (SHM) par triskell2000
Source avec Zip COMMUNICATION INTER PROCESSUS PAR IPC SOUS *NIX par AlexN

Commentaires et avis

Commentaire de dounia_3 le 26/01/2008 13:18:28

bonjour
j'utilise le c++ builder et je ne sais pas implémenter les boutons en relief, si vous pouvez m'aider:mon email est:
educ_3@yahoo.fr
merci beaucoup

Commentaire de z189632 le 09/09/2008 11:05:49

Salut,

Je voudrais bien savoir comment faire pour lister ça, il y a t elle une fonction, ou un procédé ??

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Variable partagée : semaphore ? [ par sena ] Bonjour,j'ai deux fonctions.Une de ces 2 fonctions est un thread qui s'exécute toutes les 3 secondes.Ces 2 fonctions utilisent une même variable.je su Linux, C & Sockets [ par cbismuth ] Bonjour! Je pense devenir fou...Je programme actuellement une architecture serveur/client en C.Le problème est que pour tous les clients qui se conne Passer une struct dans une shared memory POSIX [ par cobbleguard ] Salut,J'ai 3 processus ind&#233;pendants qui communiquent.PS1 re&#231;oit des valeurs saisies au clavier, les met dans une structure et les envoie au IPC dans un driver [ par Willi ] Bonjour,Je suis en train de développer un driver afin de hooker ZwCreateFile.Voila au lieu d'enregistrer dans un fichier les paramètres passés à cette L'événement est il un IPC ? [ par Booster ] Bonjour,Voila question à 300€ ^^ que je me suis posé, est ce que les évenements font partie de la catégorie IPC (Inter processus communication) ?Vu qu [IPC] Memoire partage shmget() [ par Ilsundal ] Bonjour a tous,je rencontre un soucis récurrent sous FreeBSD et MacOS X, lors de l'utilisation de mémoire partage, avec les méthodes ftok(), shmget(), Semaphore Solaris [ par carton99 ] Bonjour, je me suis peut etre trompé de theme! Bref j'utilise les semaphores par exemple P(mutex) ou V(gare1). J'aimerai réaliser des fonctions pour information ipc [ par miouxmioux ] Bonjour à tous, Je travaille en ce moment avec les ipc, et plus spécialement avec les files de messages. J'ai pu voir que l'on pouvait récuperer le memoire partage [ par chiro2000 ] Bonsoir Je suis actuellement entrain d' ecrire un jeu en utilisant les Shm; la map du jeu est stocke dans une shm que chaque processus appele joueur Quel est le meilleur IPC(Inter Processus Communications) sous windows ? [ par LaTatadu91 ] Bonjour, Dans le cadre d'échanges de données entre 2 processus écrit en C++, basé sur un seul PC sous Windows. Ces échanges se font dans les 2 sens,


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 9,220 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales