我有一个文件test.txt
,其中有一些文字,
abc
我以"r+b"
模式打开它,读取整个3个字符,然后在它后面追加“defg”,
所以在这个操作之后,文件的内容应该是:
abcdefg
但是当我尝试调用fwrite时,它总是失败,它写了0个元素,错误代码是32(EPIPE),我不知道这个错误意味着什么。
查看我的代码:
FILE* iof = fopen("test.txt", "r+b");
char buf[64];
size_t result;
if((result = fread(buf, 1, 3, iof)) != 3) {
printf("%d %d\n", result, ferror(iof));
} else {
buf[3] = 0;
printf("%s\n",buf);
if((result = fwrite("defg", 1, 4, iof)) != 4) {
printf("%d %d\n", result, ferror(iof));
}
}
控制台的输出是:
abc
0 32
和文件:
abc
我弄错了吗?为什么会出现这种错误?
这是否是编译器错误?