/* Mecanismes de communication entre processus - IPC */ /* Creation d'une zone de mémoire interne partajée (shared memory - shm ) */ #include #include #include #include #define SHMEM_SIZE 256 #define SHMEM_RIGHTS 0x01ff /* dimension de la zone : 255 octets */ /* droits d'accès dans la zone de mémore partagée: 1ff */ /* on nn'utilisera que le premier entier long pour l'exemple */ 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 ; char * pnl ; int i; if (argc<2) exit(1); ipc_key = atoi(argv[1]) ; /* creation de la zone commune : primitive shmget (....) */ ipc_result = shmget(ipc_key, SHMEM_SIZE, IPC_CREAT|IPC_EXCL|SHMEM_RIGHTS) ; if (ipc_result != -1) { printf(" - Succes !! -\n"); /* attachement à la zone de mémoire partagée : shmat (....) */ pnl = (char*)shmat(ipc_result, 0, SHMEM_RIGHTS) ; /* initialisation avec 0 de la zone de mémoire partagée */ for (i=0;i