陕西玻纤增强聚丙烯FRPP管品牌询价咨询「星驰」女人三十五
2023-10-09 00:55 浏览:31
3分钟前 陕西玻纤增强聚丙烯FRPP管品牌询价咨询「星驰」[星驰60b5ccc]内容:在主进程中利用fork()函数创建一个子进程,这样父子进程同时拥有对同一管道的读写句柄,因为管道没有提供锁定的保护机制,所以必须决定数据的流动方向,然后在相应进程中关闭不需要的句柄。这样,就可以使用read()和write()函数来对它进行读写操作了。使用无名管道进行进程间通信的步骤概述如下:①创建所需的管道;②生成(多个)子进程;③关闭/文件描述符,使之与相应的管道末端相联系;若管道为空,且写端文件描述字未关闭,则被阻塞。若管道写端已关闭,则返回0。若管道不为空,分两种情况:(设管道中实际有m个字节),如n>=m,则读m个;如果n<m则读取n个。实际读取的数目作为read的返回值。2.2.4 关闭管道close函数关闭写端则导致读端read调用返回0;关闭读端,则导致写端write调用返回-1,errno被设为EPIPE,在写端write函数退出前,进程还会收到SIGPIPE信号(默认处理是终止进程,该信号可以捉)。文件描述符的dup2intdup2(intfdl,intfd2);文件描述符fdl到fd2。fd2可以是空闲的文件描述符,如果fd2是已打开文件,则关闭fd2;如果fd1不是有效的描述符,则不关闭fd2,调用失败。2.3 关于无名管道需要注意的几个问题①管道是半双工方式,数据只能单向传输。如果要在两个进程之间相互传送数据,就要建立两条管道。②pipe()调用必须在调用fork()以前进行,否则子进程将无法继承文件描述符。③使用无名管道互相连接的任意进程必须位于一个相关的进程家族里。