c - 如何确定文件描述符是否可搜索?

标签 c posix file-descriptor

是否有任何可移植的方法(在 POSIX 系统上)来确定文件描述符是否可搜索?我的想法是使用 lseek(fd, 0, SEEK_CUR); 并检查返回值是否为 -1,但我不确定这是否会产生漏报或误报。使用 fstat 并假设哪些类型的文件是可搜索/不可搜索的,这听起来不是一个好主意。还有其他想法吗?

最佳答案

lseek 方法似乎是合理的。它当然不会导致假阴性——如果确实如此,则说明实现存在严重错误。此外,根据 POSIX spec ,如果描述符是管道、FIFO 或套接字,它应该会失败,所以理论上你也不应该有误报。唯一剩下的问题是不同的系统在多大程度上符合规范。然而,似乎任何其他方法,无论它们是什么,都肯定不如这个可移植。

关于c - 如何确定文件描述符是否可搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3238788/

相关文章:

c++ - gcc下如何调用C编译器

c - 如何从文本文件读取数据并将其存储在我的 C 程序中以便在函数中使用?

c - vfork() 调用后退出和返回之间的区别

bash - 使用 fd 嵌套 while 读取循环

linux - fork 而不是共享时如何复制文件描述?

c - 如何在 C 中使用定时器?

在c中将文本文件转换为二进制文件

c++ - 关于碰撞安全和容错编程的资源

c - **argv 参数的最大长度

c - 尝试将 fmemopen 文件描述符与 stdin 相关联时出现错误的文件描述符错误