文書番号: 402065
最終更新日: 1999/08/19
<TEST.TXT> == TEST DATA START== 1 2 3 4 5 6 7 8 9 0 A B C D E F G H I J a b c d e f g h i j == TEST DATA END == <foo.c> #include <stdio.h> #include <malloc.h> void main(void) { FILE *fp; unsigned char *buff; buff = (unsigned char *)malloc (1000); fp = fopen("TEST.TXT","rt"); fread(buff, 1000, 1, fp); printf ("%s", buff); fclose (fp); free (buff); }
<foo.c> #include <stdio.h> #include <malloc.h> void main(void) { FILE *fp; unsigned char *buff; size_t sz; // 変換後のデータサイズ保存用変数 buff = (unsigned char *)malloc (1000); fp = fopen("TEST.TXT","rt"); sz = fread(buff, 1, 1000, fp); // データ読み込み/変換後のデータサイズ取得 buff[sz] = 0; // 有効なデータの最後に NULL を挿入 printf ("%s", buff); fclose (fp); free (buff); }なお、この現象は Visual C++ 2.0 に添付の NT 用ランタイム関数では発生しません。
Keywords: KBBUG KB402065
Technology: kbAudDeveloper kbCCompPDS600DOS kbCCompSearch kbPWBSearch kbVCsearch kbZNotKeyword3 kbZNotKeyword8