[C] Utilisation de chdir

Toiine974 Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   -  
Toiine974 Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour a tous,
j'aimerai savoir coment utiliser la fonction chdir, le man indique qu'on doit simplement lui passer le path sous forme de chaine de caractere, cependant, ca ne fonctionne pas, j'ai essaye des chemins relatifs, absolus...
Rien n'y fait ?

Pourriez vous m'eclairer a ce sujet ?

12 réponses

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Salut.
Comment sait tu que ça ne fonctionne pas ?
donne nous un code concret, qui ne fonctionne pas, ça sera plus simple.
1
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
le chdir n'est valable que durant l'exécution du programme, quand tu en sors, tu te retrouves dans le répertoire de départ
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

Chaque processus dispose d'un répertoire de travail qui par défaut est celui du processus père.
Il peut être modifié en utilisant l'appel système chdir() mais il ne sera visible que par le processus en cours et ses descendants mais pas dans le processus père.
0
Toiine974 Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   4
 
Humm, d'accord, alors pour que ce changement de dossier s'applique egalement apres l'execution du programme, quelle solution s'offre a moi?
Quelque chose avec un fork ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Je pense que les seuls solutions c'est de tripatouillé avec le shell, en fait c'est son dossier courant que tu veux changer. Peut être en modifiant certaines variables d'environnement.
Pourquoi vouloir faire ça ?
0
Toiine974 Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   4
 
je dois justement recoder un shell, et donc je dois recoder mon builtin, cd, j'imagine qu'il y'a une ligne dans l'env qui y correspond.
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
PWD ?
0
Toiine974 Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   4
 
en changeant le pwd ca va pas uniquement changer l'information, mais aussi me deplacer?
Par contre je vois pas comment modifier une partie de l'environnement...
0
Toiine974 Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   4
 
Mais modifier pwd signifierait que je n'ai plus a utiliser chdir? Et appparement je suis censé l'utiliser.
Je sais pas si c'est la bonne piste de reflexion.
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Ton projet n'est pas clair, donc je ne sais pas trop. Je pense qu'il faut chdir ET pwd.
pour modifier les variables : http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/setenv.3.html
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
après ton chdir, si tu ouvres un shell, il sera dans le bon répertoire

chdir("/tmp");
system(getenv("SHELL"));
0
Toiine974 Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   4
 
Merci, je vais travailler sur cette piste.
Char, le souci, c'est que setenv fait partie des builtin que je dois recoder ^^'
0