我该如何在Linux管道上为write()设置超时?
示例代码:
int fd_pipe = open("/run/some/pipe", O_RDWR);
// here i need to set timeout for 3 seconds somehow, if can't write, code will continue...
write(fd_pipe, something, strlen(something));
// continue executing..
谢谢
O_READ
或O_WRITE
,但永远不要同时打开两个,这取决于你使用它的角色。如果你向FIFO写入数据,然后从中读取,你将得到之前写入的数据。FIFO没有套接字语义。如果读取器关闭了写入FIFO,你不会收到通知,因为你是该FIFO的另一个读取器。如果你想要双向通信,请打开一个Unix套接字或使用两个FIFO。 - Luis Colorado