В чем разница между функциями remove и unlink в С++?
Unlink vs remove в С++
Ответ 1
Кроме того, что unlink является unix-специфичным (как указано Chris), мы читаем в руководстве POSIX:
Если путь не указан в каталоге, remove (путь) эквивалентен unlink (path). Если путь указывает каталог, remove (путь) эквивалентен rmdir (путь).
Что касается переданного каталогом unlink
, мы читаем:
Аргумент path не должен указывать каталог, если процесс не имеет соответствующих привилегий, а реализация поддерживает использование unlink() в каталогах. (...) Приложения должны использовать rmdir() для удаления каталога.
Ответ 2
remove
является переносимым, а unlink
является Unix-специфичным.:-P
Ответ 3
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