some-usable-scripts/c/semaphores_manuel_exemples/Exemples_semaphores/raZ.c

43 lines
934 B
C

/* Mecanismes de communication entre processus - IPC */
/*
/* met a zero l' entier long de la mem par*/
#include <stdlib.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <stdio.h>
#define SHMEM_RIGHTS 0x01ff
/* droits d'accès dans la zone de mémore partgée: 1ff */
int main (int argc, char ** argv) {
/* l'identificateur externe (key) de la zone de mémoire partagée
est un nombre entier transmis en paramètre par l'utilisateur */
int ipc_key ;
int ipc_result ;
long *ptz;
int i;
if (argc<2)
exit(1);
ipc_key = atoi(argv[1]) ;
ipc_result = shmget(ipc_key, 0,0);
if (ipc_result != -1)
{
printf(" - Succes !! -\n");
ptz = (long *) shmat(ipc_result, 0, SHMEM_RIGHTS) ;
printf("remise a zero ( %ld ) ", *ptz);
*ptz = 0;
}
else
printf(" Erreur :%d \n",ipc_result);
exit(0) ;
}