gpt4 book ai didi

c - 使用popen的非阻塞管道?

转载 作者:IT王子 更新时间:2023-10-29 00:21:26 25 4
gpt4 key购买 nike

我想使用 popen() 打开管道并对其进行非阻塞“读取”访问。

我怎样才能做到这一点?

(我找的例子都是阻塞/同步的)

最佳答案

设置如下:

FILE *f = popen("./output", "r");
int d = fileno(f);
fcntl(d, F_SETFL, O_NONBLOCK);

现在你可以阅读:

ssize_t r = read(d, buf, count);
if (r == -1 && errno == EAGAIN)
no data yet
else if (r > 0)
received data
else
pipe closed

完成后,清理:

pclose(f);

关于c - 使用popen的非阻塞管道?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1735781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com