网站建站网站哪家好,网络推广主要内容,志鸿优化网下载,iis运行wordpress管道的读写操作#xff1a;
读操作#xff1a;
有数据#xff1a;read正常读#xff0c;返回读出的字节数无数据#xff1a;1 写段全部关闭#xff1a;read解除阻塞#xff0c;返回0#xff0c;相当于文件读到了尾部 2 写段没有全部关闭#xf…管道的读写操作
读操作
有数据read正常读返回读出的字节数无数据1 写段全部关闭read解除阻塞返回0相当于文件读到了尾部 2 写段没有全部关闭read阻塞
写操作
读端全部关闭管道破裂进程终止内核给当前进程发SIGPIPE信号读端没有全部关闭缓冲区写满了write阻塞 缓冲区没有满继续write
设置管道为非阻塞 若想设置读写两端为非阻塞则可以这样做
int flagfcntl(fd[0],F_GETFL,0);
flag flag | NONBLOCK;
fcntl(fd[0],F_SETFL,flag);
若是读端为非阻塞
写端没有关闭管道中没有数据可读返回-1
写端没有关闭管道中有数据可读返回实际读到的字节数
写端已经关闭管道中有数据可读返回实际读到的字节数
写端已经关闭管道中没有数据可读返回0
如何查看管道缓冲区大小
ulimit -a
如下