バイナリ入出力

なぜだかgccでは成功するのに、Visual C++では失敗するこのソースコードの問題点はどこなのか探すのに途方に暮れている。やっぱりC標準ライブラリの違いなんだろうか。それにしても、30行のソースコードのどこがどうコンパイラによって違ってくるのか分からない。。。

(五分後)解決した〜

何が問題だったかというとMinGWbashを使っていたからだった。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);
}