unlinkはファイルを削除するのに使うのだけれど、VisualC++でコンパイルしたプログラムが思ったような動作をしなかった。
通常、unlinkは、自分のプロセスがファイルをオープンしていても発行することができ、その場合、ファイルは中間状態のようなほかからはリファーできない状態に置かれる。自分のプロセスがファイルをクロースした(もしくはexitした)場合には、中間状態に置かれたファイルはきれいに消えるのだ。
ところが、VisualC++ .NET ではプログラムが終了してもファイルが残ってしまう。
_WIN32だから、_unlinkなのかと変更しても同じだ。
同じプログラムをCygwinで動かしたり、Linuxで動かせば期待通りの動作をしてくれる。
むむ・・
結局、先にクロースしないと消せないのが、VisualC++的仕様らしい・・はぁ・・