文件*超时读取

时间:2016-10-08 18:53:24

标签: c stream timeout libc

我正在建立一个采用文件流并使用它来读写的通信库。该协议定义了超时,所以我想使用它们。

我正在使用fread(3)fwrite(3)。我听说过select(2),这是我正在寻找的,除了它使用文件描述符而不是libc文件流 - 我想支持用fopencookie(3)创建的自定义文件流,对测试和其他东西很有用,太。我尝试使用SIGALRM设置alarm(2)以获取EINTR的{​​{1}}错误(使用fread(3)设置SIGALRM的回调),但它不会按预期停止signal(2)通话......

提前感谢任何解决方案。

编辑:所以它看起来像这样......但只有一次。在第二次通话时,它不会...... Oo

fopen

再次感谢任何帮助^^

1 个答案:

答案 0 :(得分:0)

函数:fdopen()将从文件描述符中获取文件指针。

然后你可以使用函数select()fdopen()返回的文件指针。