Advertisement
Tobiahao

S01_PAMIEC_DZIELONA_01

Dec 19th, 2017
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.91 KB | None | 0 0
  1. /*
  2. Zademonstruj u ż ycie przez program prywatnego obszaru pami ę ci dzielonej.
  3. */
  4.  
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <sys/ipc.h>
  8. #include <sys/types.h>
  9. #include <sys/shm.h>
  10. #include <string.h>
  11.  
  12. #define SEGMENT_SIZE 128
  13. #define MESSAGE_TO_STORE "Jakas wiadomosc"
  14.  
  15. int main(void)
  16. {
  17.     int shmid;
  18.     char *shared_memory;   
  19.  
  20.     if((shmid = shmget(IPC_PRIVATE, SEGMENT_SIZE, 0775 | IPC_CREAT | IPC_EXCL)) == -1){
  21.         perror("shmget");
  22.         return EXIT_FAILURE;
  23.     }
  24.  
  25.     if((shared_memory = shmat(shmid, NULL, 0)) == (char *)-1){
  26.         perror("shmat");
  27.         return EXIT_FAILURE;
  28.     }
  29.  
  30.     strncpy(shared_memory, MESSAGE_TO_STORE, strlen(MESSAGE_TO_STORE));
  31.  
  32.     printf("Napis w pamieci dzielonej: %s\n", shared_memory);
  33.  
  34.     if(shmdt(shared_memory) == -1){
  35.         perror("shmdt");
  36.         return EXIT_FAILURE;
  37.     }
  38.  
  39.     if(shmctl(shmid, 0, IPC_RMID) == -1){
  40.         perror("shmctl");
  41.         return EXIT_FAILURE;
  42.     }
  43.  
  44.  
  45.     return EXIT_SUCCESS;
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement