gpt4 book ai didi

c - 以非阻塞方式读取文本行

转载 作者:行者123 更新时间:2023-12-02 04:40:07 25 4
gpt4 key购买 nike

在 C 程序中,我想从标准输入读取文本行。同时我想处理来自另一个文件描述符的数据。

我尝试使用 poll 来等待两个源中的任何一个变得可读并相应地处理它们。但是 poll 需要裸文件描述符,并且要使用 fgets 之类的东西读取整行,我需要一个 FILE 句柄。

我可以使用 filenofdopen 来“转换”它们,但以混合方式使用两者似乎不是一个好主意。

因此,有没有一种不阻塞或线程等待文本行的好方法?

最佳答案

您可以使用任何您想要的多路复用(select()poll()epoll_wait())。但是你不应该使用 fgets()stdin 读取,因为多路复用不知道我们是否有完整的行。所以在某些情况下它可能会阻塞。您应该编写自定义行读取函数,它将指示还没有完整的行并立即返回。

关于c - 以非阻塞方式读取文本行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38240602/

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