c++ - fwrite 和 write 之间的主要区别是什么?

标签 c++ c

我目前正在用 C 编写一个回调函数:

static size_t writedata(void *ptr, size_t size, size_t nmemb, void *stream){

        size_t written = fwrite(ptr, size, nmemb, (FILE)*stream);
        return written;
}

此函数将在另一个函数中使用,该函数执行 HTTP 请求、检索请求并将其写入本地机器。 writedata 函数将用于后面的部分。整个操作必须是多线程,所以我在writefwrite之间犹豫不决。有人可以帮助我概述 Cwrite()fwrite() 之间的区别,这样我就可以选择最适合我的问题的一个?

最佳答案

fwrite 写入 FILE*,即(可能)缓冲的 stdio 流。它由 ISO C 标准指定。此外,在 POSIX 系统上,fwrite is thread-safe在一定程度上。

write 是一种基于文件描述符的低级 API,在 POSIX 标准中有描述。它不知道缓冲。如果你想在 FILE* 上使用它,然后用 fileno 获取它的文件描述符,但一定要在尝试 write 之前手动锁定并刷新流

除非您知道自己在做什么,否则请使用 fwrite

关于c++ - fwrite 和 write 之间的主要区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11414191/

相关文章:

C++ operator<< 使用模板重载流

c - 为什么当我推送数据时该程序会发生运行时崩溃?

c - 为什么指针类型转换为 float 不起作用?

C线程创建问题

c++ - boost 条件变量

c++ - Cmake import -lpthread 等

c++ - STL列表-[intNumber]的作用是什么?

C++ 双链表 prev 指针

c - Linux 终端 - 打印大量数据

c - a 和 b 的值是多少?