fwrite EPIPE错误

时间:2013-06-05 02:03:27

标签: c visual-studio-2012 fwrite

我有一个文件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

我弄错了吗?为什么会出现这种错误?

这是否是编译器错误?

0 个答案:

没有答案