Probleme avec chdir en C
Résolu/Fermé
Jofroy
Messages postés
82
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 82 Date d'inscription mercredi 30 juin 2010 Statut Membre Dernière intervention 10 octobre 2017 - 17 mars 2017 à 11:17
Jofroy Messages postés 82 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
- Cd burner - Télécharger - Gravure
- Hiren's boot cd - Télécharger - Divers Utilitaires
- Jaquette cd gratuite à télécharger - Télécharger - Catalogage
- Clone cd - Télécharger - Gravure
- Lecteur cd externe voiture norauto - Forum Autoradio
1 réponse
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 094
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