c - 如果链接到它们的 fd 用于其他目的,FILE * 是否继续工作?

标签 c macos filestream file-descriptor

我通常只使用文件描述符。如果链接到它的 fd 用于其他目的,我不确定 FILE * 是否会继续正常工作。 FILE *和链接到它的fd是独立存在的吗?

最佳答案

在 POSIX 系统上,是的,fd 支持 FILE*。关闭 FILE* 会关闭 fd。交错使用 fd 和 FILE* 有弄乱数据的风险(FILE* 执行 fd 绕过的用户模式缓冲);您必须要么禁用缓冲(使用 setvbuf 等),要么确保在任何内容直接写入 fd 之前可靠地刷新 FILE* 。否则,只要没有任何东西关闭 fd,FILE* 就应该继续工作。

关于c - 如果链接到它们的 fd 用于其他目的,FILE * 是否继续工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56596771/

相关文章:

c++ - 有没有感觉 c++ 有时会减少解决问题的时间并增加句法、语义的严谨性?

macos - 使用 Unix 终端打开当前文件夹中具有指定扩展名的所有文件的命令?

c# - 将流转换到文件流

c# - FileStream 与/差异 StreamWriter?

c - 从字符串中提取字符串值

c - 如何检查c代码中的内存泄漏?

C—— socket 。客户端 : connect: No such file or directory

python 蛋 : where is it installed?

objective-c - 在 Cocoa OSX 中显示表格 View 的最少步骤

c# - 使用 FileStream 创建文件并应用 FileAttributes