我目前正在用 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
函数将用于后面的部分。整个操作必须是多线程
,所以我在write
和fwrite
之间犹豫不决。有人可以帮助我概述 C
中 write()
和 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/