1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <unistd.h>
4 #include <sys/mman.h>
5 #include <sys/shm.h>
6 #include <sys/ipc.h>
7 #include <string.h>
8 #include <sys/wait.h>
9
10 #define SHM_SIZE 9999
11
main()12 int main()
13 {
14 int shmid;
15 char *shmaddr;
16 key_t key = 6666;
17
18 // 测试shmget
19 shmid = shmget(key, SHM_SIZE, 0666 | IPC_CREAT);
20 if (shmid < 0)
21 {
22 perror("shmget failed");
23 exit(EXIT_FAILURE);
24 }
25
26 // 测试shmat
27 shmaddr = shmat(shmid, 0, 0);
28
29 char read_buf[20];
30 memcpy(read_buf, shmaddr, 14);
31
32 printf("Receiver receive: %s\n", read_buf);
33
34 memset(shmaddr, 0, SHM_SIZE);
35 memcpy(shmaddr, "Reveiver Hello!", 16);
36
37 shmdt(shmaddr);
38
39 return 0;
40 }