unlink vs remove in c++

前端 未结 5 891
一整个雨季
一整个雨季 2020-12-08 10:09

What is the difference between remove and unlink functions in C++?

相关标签:
5条回答
  • 2020-12-08 10:21

    The remove() function removes the file or directory specified by path.

    If path specifies a directory, remove(path) is the equivalent of rmdir(path). Otherwise, it is the equivalent of unlink(path).

    From: man remove.

    Good Luck ;)

    0 讨论(0)
  • 2020-12-08 10:23

    remove() is part of the C++ standard (N4860 29.11.14.30). unlink() is not.

    0 讨论(0)
  • 2020-12-08 10:26

    unlink is not unix-specific, i don't know why people're saying that. see io.h. although you'll probably have to do something like

    #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

    0 讨论(0)
  • 2020-12-08 10:29

    Apart from the fact that unlink is unix-specific (as pointed out by Chris), we read in the POSIX manual:

    If path does not name a directory, remove(path) is equivalent to unlink(path). If path names a directory, remove(path) is equivalent to rmdir(path).

    As for the directory-passed unlink, we read:

    The path argument must not name a directory unless the process has appropriate privileges and the implementation supports using unlink() on directories. (...) Applications should use rmdir() to remove a directory.

    0 讨论(0)
  • 2020-12-08 10:30

    remove is portable, and unlink is Unix-specific. :-P

    0 讨论(0)
提交回复
热议问题