GBase 8a
运维管理
文章

gbase8a使用Pipe管道进行线程间通信

发表于2026-01-10 09:53:3821次浏览1个评论

Pipe管道分为读和写

  1. 读空Pipe时:

  • 写端全关闭,read则返回0,即end-of-file;

  • 如果存在写端,且设置了O_NONBLOCK,read返回-1,errno=EAGAIN;

  • 如果存在写端,且为阻塞状态,read则阻塞等待;

  1. 写管道Pipe

  • 读端全关闭,进程将异常终止(SIGPIPE);

  • 读端存在,且为阻塞状态,如果buf满了,则写阻塞知道Pipe buf被读出数据并存在空间,未满则立刻写入数据,并返回写入的字节数;

  • 读端存在,且设置了O_NONBLOCK:

评论

登录后才可以发表评论
崔哥发表于 4个月前
暖雨晴风初破冻,柳眼梅腮,已觉春心动。酒意诗情谁与共,泪融残粉花钿重。乍试夹衫金缕缝,山枕斜欹,枕损钗头凤。独抱浓愁无好梦,夜阑犹剪灯花弄。