質問: 1と表示されて終わります。 つまりループが一回しか実行されていないことになります。 なんで一回で終わってしまうんでしょうか? 下のやり方ではできない理由を教えてください。 実行環境は Linux 64bit gcc です。 皆さんの環境では、どうなりますかね? 正常に動作しますか??
回答: freadの扱いが間違ってますね 要素数を返すため、読み取ったバイト数は `第2引数 * 戻り値` です 1が戻った場合はBSIZE1個分読んだよってことです ちなみに、動かす方法 * BSIZE を 1にする事で(偶然)動く * 多分本来コレを書くつもりだった ``` while((n = fread(buf, 1, BSIZE, src)) > 0){ fprintf(stderr, "n = %d\n", n); fwrite(buf, n, 1, dst); } ```