は、私はこのようなファイルから読み込まいます:なぜfreadが "Bad file descriptor"に遭遇するのですか?
#include <stdio.h>
int main() {
FILE *fp = fopen("sorted_hits", "r+");
while(!feof(fp)) {
int item_read;
int *buffer = (int *)malloc(sizeof(int));
item_read = fread(buffer, sizeof(int), 1, fp);
if(item_read == 0) {
printf("at file %ld\n", ftell(fp));
perror("read error:");
}
}
}
このファイルは大きいと私は時々、「不正なファイルディスクリプタ」エラーを得ました。 「ftell」は、エラーが発生したときにファイルの位置が停止したことを示します。
なぜ「時々」であるのか分かりませんが、それは普通ですか?問題は私のコードや私のハードディスクにありますか?これをどう扱う?
+1 nice catch .. –
それに加えて、 'printf("ファイル%ld \ n "、ftell(fp));' 'perror "") 'はerrnoを設定することができるので、印刷されるfreadのerrnoではないかもしれません。 – nos