C ++中删除和取消链接函数有什么区别?
答案 0 :(得分:56)
除了unlink是特定于unix的事实(正如Chris所指出的),我们在POSIX手册中读到:
如果path没有命名目录,则remove(path)等同于unlink(path)。 如果路径为目录命名,则remove(path)等同于rmdir(path)。
对于目录传递unlink
,我们读到:
path参数不能命名目录,除非进程具有适当的权限,并且实现支持在目录上使用unlink()。 (...)应用程序应使用rmdir()删除目录。
答案 1 :(得分:19)
remove
是可移植的,unlink
是特定于Unix的。 :-P
答案 2 :(得分:5)
remove()
函数删除path指定的文件或目录。
如果path指定目录,remove(path)
相当于
rmdir(path)
。否则,它相当于unlink(path)
。
来自:man remove
。
祝你好运;)
答案 3 :(得分: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
答案 4 :(得分:0)
remove()
是C ++标准(N4860 29.11.14.30)的一部分。 unlink()
不是。