48

C++ の remove 関数と unlink 関数の違いは何ですか?

4

5 に答える 5

63

unlink が unix 固有であるという事実は別として (Chris が指摘したように)、POSIX マニュアルを読みました:

path がディレクトリを指定していない場合、remove(path) は unlink(path) と同等です。path がディレクトリ名の場合、remove(path) は rmdir(path) と同じです。

directory-passedunlinkについては、次のように読みます。

プロセスに適切な権限があり、実装でディレクトリに対する unlink() の使用がサポートされていない限り、path 引数でディレクトリを指定してはなりません。(...) アプリケーションは rmdir() を使用してディレクトリを削除する必要があります。

于 2010-02-03T14:09:54.970 に答える
20

remove移植性があり、unlinkUnix 固有です。:-P

于 2010-02-03T14:06:45.430 に答える
5

このremove()関数は、パスで指定されたファイルまたはディレクトリを削除します。

path がディレクトリを指定する場合、remove(path)は と同等です rmdir(path)。それ以外の場合は、 と同等ですunlink(path)

差出人: man remove.

幸運を ;)

于 2013-02-27T23:51:57.467 に答える
4

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

于 2011-12-02T00:49:22.647 に答える
0

remove()C++ 標準 (N4860 29.11.14.30) の一部です。unlink()ではありません。

于 2020-09-15T01:24:16.577 に答える