unlink vs remove на c++

в чем разница между функциями remove и unlink в C++?

3 ответов


помимо того, что unlink специфичен для unix (как указал Крис), мы читаем в руководстве POSIX:

Если path не называет каталог, remove(path) эквивалентно unlink (path). Если путь называет каталог, remove(path) эквивалентен rmdir (path).

Что касается каталога-passed unlink, мы читаем:

аргумент path не должен называть каталог, если процесс не имеет соответствующих привилегий и реализация поддерживает использование unlink () в каталогах. (...) Приложения должны использовать rmdir() для удаления каталога.


remove - Это портативный, и unlink специфичен для Unix. :- P


unlink не зависит от unix, я не знаю, почему люди это говорят. см. Ио.ч. хотя вам, вероятно, придется сделать что-то вроде

#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