openされたファイルとunlinkについて
tmpfileの挙動でオープンしたと同時にunlinkが発行されて後始末をしなくていいという話だったんですが具体的にどういう挙動なんだということが気になりまして調べてみたら、unlinkはファイルシステム上の名前の削除で、さらにどのプロセスもファイルをオープンしていなければファイルが削除されるという(see man 2 unlink)ことになっていて、tmpfileの挙動はこれを利用した物になっているようです。従って受け取ったファイルディスクリプタをcloseしてしまうとプロセスが起動中でもそのファイルは削除されてしまうようです。
参考
http://linuxjm.sourceforge.jp/html/LDP_man-pages/man2/unlink.2.html
http://pubs.opengroup.org/onlinepubs/009695399/functions/unlink.html
- 作者: Michael Kerrisk,千住治郎
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/12/01
- メディア: 大型本
- クリック: 14回
- この商品を含むブログ (5件) を見る