深く考えずにこんな感じのコードを書いていた。
while (1) {
ssize_t ret = read(fd, buf, 1024);
if (ret == 0) {
break;
}
if (ret < 1) {
int errno_hoge = errno;
printf("ERROR! no=%d\n", errno_hoge);
break;
}
}
これはまぁ特に問題なく終わる。
で、readの部分を何も考えずにwriteに換えたらどうなるかやってみた。
ssize_t ret = write(fd, buf, 1024);
書き込み量制限がまったくないので何が起こるかは明白。
何が起こったかというと、アプリは一向に終わらずHDDがガリガリと轟音を立てまくり。強制終了させて書き込み対象のファイルを見ると、600MBとかに膨らんでいる。
何も考えずにコード書くってのは恐ろしいことです。