Probleme avec chdir en C
Résolu/Fermé
Jofroy
Messages postés
81
Date d'inscription
mercredi 30 juin 2010
Statut
Membre
Dernière intervention
10 octobre 2017
-
Modifié par Jofroy le 17/03/2017 à 09:10
Jofroy Messages postés 81 Date d'inscription mercredi 30 juin 2010 Statut Membre Dernière intervention 10 octobre 2017 - 17 mars 2017 à 11:17
Jofroy Messages postés 81 Date d'inscription mercredi 30 juin 2010 Statut Membre Dernière intervention 10 octobre 2017 - 17 mars 2017 à 11:17
A voir également:
- Alias break cd chdir
- Hiren boot cd - Télécharger - Divers Utilitaires
- Cd burner - Télécharger - Gravure
- Jaquette cd gratuite à télécharger - Télécharger - Catalogage
- Clone cd - Télécharger - Gravure
- Cd check - Télécharger - Récupération de données
1 réponse
[Dal]
Messages postés
6174
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 février 2024
1 083
Modifié par [Dal] le 17/03/2017 à 10:15
Modifié par [Dal] le 17/03/2017 à 10:15
Salut,
Le
Par exemple :
Tu pourrais, au lieu de cela, utiliser scanf ou fgets (en retirant '\n'), puisque de toutes façons tu utilises stdio.h.
Dal
Le
read()POSIX se contente de lire le contenu accédé par le descripteur et ne termine pas la chaîne avec '\0'. C'est à toi de le faire, par rapport au nombre de char lus, sinon tu passes à chdir une chaîne non terminée.
Par exemple :
#include <stdio.h> #include <unistd.h> int main(int argc, char* argv[]){ char buffer[1024]; ssize_t n = read(0,buffer,1024); if ((n > 0) && (buffer[n-1] == '\n')) { buffer[n-1] = '\0'; } else { printf("Erreur de lecture ou buffer trop petit\n"); return 1; } printf("buffer = %s\n", buffer); int rep=chdir(buffer); printf("%d\n",rep); return 0; }
Tu pourrais, au lieu de cela, utiliser scanf ou fgets (en retirant '\n'), puisque de toutes façons tu utilises stdio.h.
Dal
17 mars 2017 à 11:17
Merci beaucoup encore