【发布时间】:2011-01-12 15:22:04
【问题描述】:
C++ 中的 remove 和 unlink 函数有什么区别?
【问题讨论】:
-
我怀疑你会注意到速度上的任何差异。做出选择不会是运营成本高昂的部分。
C++ 中的 remove 和 unlink 函数有什么区别?
【问题讨论】:
除了 unlink 是特定于 unix 的(正如 Chris 指出的那样),我们在 POSIX 手册中阅读:
如果 path 没有命名目录,remove(path) 等价于 unlink(path)。 如果 path 命名一个目录,remove(path) 等价于 rmdir(path)。
至于目录传递的unlink,我们阅读:
除非进程具有适当的权限并且实现支持在目录上使用 unlink(),否则路径参数不得命名目录。 (...) 应用程序应该使用 rmdir() 来删除一个目录。
【讨论】:
remove 是可移植的,unlink 是 Unix 特定的。 :-P
【讨论】:
remove() 函数删除路径指定的文件或目录。
如果 path 指定一个目录,remove(path) 相当于
rmdir(path)。否则,它相当于unlink(path)。
发件人:man remove。
祝你好运;)
【讨论】:
remove 函数;它没有说明目录。 POSIX 扩展了您所描述的行为。
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() 不是。
【讨论】: