linux共享内存
本文使用system v api,利用共享内存实现了简单的IPC通信。 头文件svshm_xfr.h #include <stdio.h> #include <sys/shm.h> #include <sys/stat.h> #include <sys/types.h> #include <unistd.h> #define SHM_KEY 0x1234 #define OBJ_PERMS (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP) #define WRITE_SEM 0 #define READ_SEM 1 #ifndef BUF_SIZE #define BUF_SIZE 1024 #endif struct shmseg { int cnt; char buf[BUF_SIZE]; }; 写程序svshm_xfr_writer.c,从标准输入写入共享内存。 #include "svshm_xfr.h" int main(int argc, char **argv) { int shmid, bytes, xfrs; struct shmseg *shmp; shmid = shmget(SHM_KEY, sizeof(struct shmseg), IPC_CREAT | OBJ_PERMS); if (shmid == -1)