c - write 和 fwrite 的区别 不一样的结果

标签 c

如果我有一段代码可以像这样写出文本:write(1, buf, bytes); 为什么写入文件时不一样 fwrite(1 , buf, bytes,f1);?

其中 f1 声明为 FILE *f1;f1=fopen("Test.txt", "wb");。我正在查看的教程表明它应该有效。我是 C# 编码员而不是 C 编码员,我希望得到一些帮助。

最佳答案

fwrite 的签名是:

fwrite(const void * ptr, size_t size, size_t count, FILE * stream );

write 的签名是:

write(int fd, const void *buf, size_t count);

如果您匹配示例,您会发现参数不匹配。

count of write 应该是 size*count of fwrite(它让你指定你正在写的每个元素的大小)。另外 write 有一个硬编码为 1 的文件描述符,你用从 fopen 获得的 FILE* 替换它,你怎么知道 1 是指的是那个文件?

关于c - write 和 fwrite 的区别 不一样的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20436821/

相关文章:

c - C 中的函数模拟(用于测试)?

c - 如何在 C 字符串中的某个位置放置 '\0' 之后释放内存?

c - 括号影响 "c"中的输出

一旦退出函数,复制字符指针就没有效果,预期是垃圾值,但会恢复以前的地址

c - 矩阵列镜像在C中重新排列

c++ - C/C++ 中空终止字符串的长度

c - C中OpenMP中静态和动态调度的区别

c++ - 在 C++/C 中查找文件的一部分的大小?

c - 错误: expected declaration specifiers or ‘...’ before ‘stdin’

c - 唯一的随机数