共享内存的使用
-
char * name = “/dev/shm/myshm”;设置路径
Key = ftok(name,0);
-
shm_id = shmget(key,4096*N,shmflg) 创建共享内存
-
P_map = shmat(shm_id,NULL,0);映射共享内存
-
Shmdt(p_map); 解除映射
-
Shmctl(shm_id,IPC_RMID,NULL)释放内存(所有进程结束)
有名管道的使用
-
创建有名管道
#define FIFO “/tmp/2”
Unlink(FIFO) unlink()会删除参数pathname指定的文件,删除目录相并减少一个连接数,如果连接数为0,并且没有任何进程打开该文件,该文件内容才能被真正的删除,但是若有进程程打开了文件,则文件暂时不被删除,直到所有打开该文件的进程都结束才会被删除
Mkfifo(FIFO,0666);
-
打开管道
fd = open(FIFO,O_CREAT|O_NONBLOCK,0)非阻塞方式打开
fd = open(FIFO,O_CREAT|O_NONBLOCK,0) 阻塞方式打开
-
读写操作
-
unlink(FIFO);