Quelle est la différence entre les fonctions de suppression et de dissociation en C++?
Outre le fait que unlink est spécifique à Unix (comme l'a souligné Chris), nous lisons dans le manuel POSIX:
Si path ne nomme pas de répertoire, remove (path) équivaut à unlink (path). Si path nomme un répertoire, remove (path) est équivalent à rmdir (path).
En ce qui concerne le unlink
passé par répertoire, nous lisons:
L'argument path ne doit pas nommer de répertoire, sauf si le processus dispose des privilèges appropriés et que l'implémentation prend en charge l'utilisation de unlink () sur les répertoires. (...) Les applications doivent utiliser rmdir () pour supprimer un répertoire.
remove
est portable et unlink
est spécifique à Unix. :-P
La fonction remove()
supprime le fichier ou le répertoire spécifié par chemin.
Si path spécifie un répertoire, remove(path)
est l'équivalent de rmdir(path)
. Sinon, c'est l'équivalent de unlink(path)
.
De: man remove
.
Bonne chance ;)
unlink n'est pas spécifique à Unix, je ne sais pas pourquoi les gens disent ça. voir io.h. bien que vous deviez probablement faire quelque chose comme
#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