【发布时间】:2015-03-25 18:33:42
【问题描述】:
我有一个关于在 Native android 中使用带有不同标志的 open() 的问题。
因为我想打开一个文件并忽略缓存和缓冲区,以便直接访问硬件(SD 卡)。
如果标志设置是
O_CREAT | O_RDWR | O_NDELAY, S_IRUSR | S_IWUSR| O_DIRECT | O_SYNC
.我可以得到一个肯定的文件描述符(fd)。
但是如果我将设置更改为
O_CREAT | O_RDWR | S_IRUSR | S_IWUSR| O_DIRECT | O_SYNC
结果是失败(-1)。
【问题讨论】:
-
文件已存在。我删除了 O_CREAT 并且它起作用了。但是为什么带有 O_NDELAY 的标志不会返回失败呢?
-
#include
并检查 errno 的值。如果是 EAGAIN,则意味着您需要再试一次 -
谢谢,听从了您的建议和锯末的回答。我现在可以调试错误了。
标签: android file-io io filesystems embedded-linux