kagamihogeの日記

kagamihogeの日記です。

深く考えない行動の結末 - 低水準入出力

深く考えずにこんな感じのコードを書いていた。

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とかに膨らんでいる。

何も考えずにコード書くってのは恐ろしいことです。