write和fwrite的区别不一样

时间:2013-12-07 02:27:32

标签: c

如果我有一段代码写出这样的文字:write(1, buf, bytes);为什么写入文件fwrite(1, buf, bytes,f1);不起作用?

f1被声明为FILE *f1;f1=fopen("Test.txt", "wb");的位置。我正在看的教程表明它应该工作。我是C#编码器而不是C编码器,我希望得到一些帮助。

1 个答案:

答案 0 :(得分:2)

fwrite的签名是:

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

写作的签名是:

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

如果符合您的示例,您会看到该参数不匹配。

write的计数应为size*count的{​​{1}}(可让您指定要编写的每个元素的大小)。另外,write有一个硬编码为1的文件描述符,你用从fwrite获得的FILE*替换,你怎么知道fopen指的是那个文件?