Si j'ouvre un fichier en C de l'une des manières suivantes, alors fopen
fonctionne correctement.fopen échoue en C si la barre oblique '/' est placée avant le nom du répertoire
fopen("file.txt", "w");
fopen("/file.txt", "w");
fopen("dir/file.txt", "w");
Si je mets une barre oblique «/» (ou « \ » en cas de Windows) avant le nom de répertoire comme suit, puis fopen
échoue (renvoie NULL).
fopen("/dir/file.txt", "w");
Il se produit à la fois sur Windows (MSVC) et Linux. Quelle est la raison? Devrais-je supprimer le slash '/'?
Vous comprenez le concept de chemins? Surtout la différence entre un chemin * absolu * et un chemin * relatif *? –
Testez les chemins que vous essayez d'utiliser avec "ls" ou "dir" dans un shell et vous verrez bientôt où votre erreur est –
fichier.txt == fichier.txt dans le répertoire courant. /file.txt == fichier.txt dans le répertoire racine du système. Ils ne sont clairement pas les mêmes. – PSkocik