Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Zademonstruj działanie flagi SHM_RDONLY.
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <sys/ipc.h>
- #include <sys/types.h>
- #include <sys/shm.h>
- #include <string.h>
- #define MESSAGE "Jakas wiadomosc"
- int main(void)
- {
- int shmid;
- char *shared_memory;
- if((shmid = shmget(IPC_PRIVATE, SHMLBA, 0775 | IPC_CREAT | IPC_EXCL)) == -1){
- perror("shmget");
- return EXIT_FAILURE;
- }
- if((shared_memory = (char *)shmat(shmid, NULL, SHM_RDONLY)) == (void *)-1){
- perror("shmat");
- return EXIT_FAILURE;
- }
- printf("Proba zapisania danych do pamieci dzielonej z flaga SHM_RDONLY\n");
- strncpy(shared_memory, MESSAGE, strlen(MESSAGE));
- printf("W pamieci dzielonej znajduje sie: %s\n", shared_memory);
- if(shmdt(shared_memory) == -1){
- perror("shmdt");
- return EXIT_FAILURE;
- }
- if(shmctl(shmid, IPC_RMID, NULL) == -1){
- perror("shmctl");
- return EXIT_FAILURE;
- }
- return EXIT_SUCCESS;
- }
Add Comment
Please, Sign In to add comment