您的位置:首页 > 运维架构 > Linux

Linux下的C语言编程——共享内存及有名管道的使用

2016-11-27 20:54 369 查看

共享内存的使用

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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐