《UNIX网络编程》第二卷IPC通信,总结笔记(待添加):
IPC通信分为4大类:
一、消息传递
- 匿名管道:用于父子进程的通信 pipe(fd)
- 有名管道:1.FIFO 创建管道 mkfifo("my.pipe",0666);
----> 2.打开管道,返回文件描述符 fd=open("my.pipe",O_RDWR);
- 消息队列: 1. 产生一个key key=ftok(".",200);
----> 2.创建一个消息队列,返回队列的ID msgid=msgget(key,IPC_CREAT|IPC_EXCL|0666);
二、同步
- 文件锁:
- 信号量: 1. 产生一个key key=ftok(".",100);
--->2.创建一个信号量,返回信号量的ID semid=semget(key,1,IPC_CREAT|IPC_EXCL|0666);
三、共享内存: 1.产生一个key key=ftok(".",255);
---> 2.创建一片共享内存,返回共享内存ID shmid=shmget(key,4,IPC_CREAT|IPC_EXCL|0666);
---> 3.根据ID得到共享,返回一个指针,用指针访问内存数据 p= shmat(shmid,0,0);
四、远程调用: