p11-18.c

来自「SUN Solaris8平台下进程间通信」· C语言 代码 · 共 30 行

C
30
字号
#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 + =
减小字号Ctrl + -
显示快捷键?