c - open() 的区别

标签 c unix

如果我们以 O_NONBLOCK 设置打开 FIFO,为什么以只读或只写设置打开,open() 的行为会有所不同?

最佳答案

由于通信语义存在不对称性。

如果当时没有读取器,则以非阻塞模式打开写入应该会失败,因为写入没有读取器的 channel 是没有用的(没有任何读取器写入应该会失败)。

以非阻塞方式打开读取可以成功(并且确实如此),因为它声明有人(最终)将来能够读取某些内容。

关于c - open() 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47124353/

相关文章:

c - 简单的 C 循环让我发疯

c++ - Makefile:为每个包含的头文件自动编译源代码

有人可以帮我解释一下为什么下面的C程序(系统调用)有这种输出吗?

linux - 脚本路径及其执行时间

c++ - 奇怪的代码错误

c - libevent,之后启动 SSL

c - Variadic 函数在 Win32 中有效,但在 Win64 中无效

java - 来自 UNIX 的关闭 Hook

ruby - Chef Recipe 中unix命令的输出

oracle - SQL*Loader 和生成的控制文件的关键字错误