バイナリ入出力
なぜだかgcc
では成功するのに、Visual C++
では失敗するこのソースコードの問題点はどこなのか探すのに途方に暮れている。やっぱりC標準ライブラリの違いなんだろうか。それにしても、30行のソースコードのどこがどうコンパイラによって違ってくるのか分からない。。。
(五分後)解決した〜
何が問題だったかというとMinGW
でbash
を使っていたからだった。WindowsXP標準のコマンドプロンプトである
cmd
を使ったらなぜかうまくいった。まあ、bash
は今回はやめておこう。
#include <stdio.h> #include <stdlib.h> #define DATA_LENGTH 1024 int main(int argc, char *argv[]) { int i = 0; char *data = NULL; FILE *fp; fp = fopen("test.txt", "wb+"); data = malloc(DATA_LENGTH * sizeof(char)); if (data == NULL) { puts("malloc() error!"); exit(0); } for (i = 0; i < DATA_LENGTH; i++) { data[i] = (i % 26 + 'A'); } fwrite(data, 1, 1024, fp); fflush(fp); fclose(fp); free(data); exit(EXIT_SUCCESS); }