C言語でのwrite()は気を付けよう

writeは必要な分だけcountを与えないとcount分0を書き込むので注意

$ echo -e '#include <stdio.h>\nint main(){write(1,"1\\n3\\n2",256);}'> a.c ; gcc a.c ; ./a.exe | od -tx1
0000000 31 0a 33 0a 32 00 00 00 00 00 00 00 00 00 00 00
0000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
0000400

write() は、 buf が指すバッファから、ファイル・ディスクリプタ fd が参照するファイルへ、最大 count バイトを書き込む。