相关疑难解决方法(0)

C fopen vs open

您是否有任何理由(语法除外)

FILE *fdopen(int fd, const char *mode);
Run Code Online (Sandbox Code Playgroud)

要么

FILE *fopen(const char *path, const char *mode);
Run Code Online (Sandbox Code Playgroud)

代替

int open(const char *pathname, int flags, mode_t mode);
Run Code Online (Sandbox Code Playgroud)

在Linux环境中使用C时?

c unix linux file-io fopen

201
推荐指数
8
解决办法
16万
查看次数

打开(2)中的O_SYNC和O_DIRECT标志如何不同/相似?

O_SYNC和O_DIRECT标志的使用和效果非常混乱,并且在平台之间似乎有所不同.从Linux手册页(参见此处的示例),O_DIRECT提供同步I/O,最小化缓存效果,并要求您自己处理块大小对齐.O_SYNC只保证同步I/O. 虽然两者都保证将数据写入硬盘的缓存,但我相信直接I/O操作应该比普通的同步I/O更快,因为它们绕过页面缓存(尽管FreeBSD的open(2)手册页指出使用O_SYNC时,旁路缓存.请参见此处).

O_DIRECT和O_SYNC标志之间究竟有什么区别?一些实现建议使用O_SYNC | O_DIRECT.为什么?

io posix synchronous

49
推荐指数
4
解决办法
6万
查看次数

标签 统计

c ×1

file-io ×1

fopen ×1

io ×1

linux ×1

posix ×1

synchronous ×1

unix ×1