C++ の remove 関数と unlink 関数の違いは何ですか?
5 に答える
unlink が unix 固有であるという事実は別として (Chris が指摘したように)、POSIX マニュアルを読みました:
path がディレクトリを指定していない場合、remove(path) は unlink(path) と同等です。path がディレクトリ名の場合、remove(path) は rmdir(path) と同じです。
directory-passedunlink
については、次のように読みます。
プロセスに適切な権限があり、実装でディレクトリに対する unlink() の使用がサポートされていない限り、path 引数でディレクトリを指定してはなりません。(...) アプリケーションは rmdir() を使用してディレクトリを削除する必要があります。
remove
移植性があり、unlink
Unix 固有です。:-P
このremove()
関数は、パスで指定されたファイルまたはディレクトリを削除します。
path がディレクトリを指定する場合、remove(path)
は と同等です
rmdir(path)
。それ以外の場合は、 と同等ですunlink(path)
。
差出人: man remove
.
幸運を ;)
unlinkはUNIX固有ではありません。なぜ人々がそう言っているのかわかりません。io.hを参照してください。あなたはおそらく次のようなことをしなければならないでしょうが
#define unlink _unlink
http://msdn.microsoft.com/en-us/library/1c3tczd6%28v=VS.100%29.aspx
http://msdn.microsoft.com/en-us/library/2da4hk1d%28v=VS.100%29.aspx
remove()
C++ 標準 (N4860 29.11.14.30) の一部です。unlink()
ではありません。