C++中的remove和unlink函数有什么区别?
5 回答
除了 unlink 是 unix 特定的(正如 Chris 指出的那样),我们在 POSIX 手册中阅读:
如果 path 没有命名目录,remove(path) 等价于 unlink(path)。如果 path 命名一个目录,remove(path) 等价于 rmdir(path)。
至于 directory-passed unlink
,我们读到:
除非进程具有适当的权限并且实现支持在目录上使用 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()
不是。