我不知道为什么我一直在为文件写一个整数而遇到麻烦。
以下是代码:
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <string.h>
int main (int argc, char* argv[]) {
int fd, w;
int num=80;
fd=open ("file3.txt", O_CREAT|O_WRONLY, 0777);
if (fd>0) {
w=write (fd, &num, sizeof (int));
if (w==-1) {
printf ("Writing Error \n");
return EXIT_FAILURE;
}
}
close (fd);
return EXIT_SUCCESS;
}
有谁知道它会是什么?
非常感谢...
答案 0 :(得分:7)
您正在将二进制值写入文件,而不是ascii。如果你想在文件中使用ascii,你需要sprintf
首先到char
缓冲区,然后write
char缓冲区。或者使用fopen
而不是open
打开您的文件,然后使用fprintf
。
P.S。您想要close(fd)
块内的if (fd > 0) {
。另外,从技术上讲,open
的唯一错误回报是-1
。所有其他值(正,零,负)都是成功的。
答案 1 :(得分:0)
根据您的评论,它正常工作:P
恰好是十进制80。
write()
输出整数的字节而不是十进制表示。
您可能希望将fopen
和fprintf
视为获得您期望的样子的简单方法。