📄 p11-18.c
字号:
#include <sys/types.h>#include <sys/ipc.h>#include <sys/shm.h>#include <stdio.h>#include "err_exit.h"#define SHMSZ 27int main(void){ char c; int shmid; key_t key; char *shm, *s; /* 创建名为"5678"的共享存储段 */ key = 5678; if ((shmid = shmget(key, SHMSZ, IPC_CREAT | 0666)) < 0) err_exit("shmget"); /* 连接共享存储段至进程的数据空间 */ if ((shm = shmat(shmid, NULL, 0)) == (char *) -1) err_exit("shmat"); /* 写一串字母至共享存储给另一个进程 */ s = shm; for (c = 'a'; c <= 'z'; c++) *s++ = c; *s = NULL; /*等待直至另一个进程改变共享存储段第一个字节为'*', 这表示它已读到了写入的数据*/ while (*shm != '*') sleep(1); exit(0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -