[C] Utilisation de chdir

Fermé
Toiine974 Messages postés 22 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 20 février 2013 - 23 févr. 2010 à 15:21
Toiine974 Messages postés 22 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 20 février 2013 - 25 févr. 2010 à 17:17
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 vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
23 févr. 2010 à 15:40
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 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 5 623
23 févr. 2010 à 15:40
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
23 févr. 2010 à 15:43
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 vendredi 30 octobre 2009 Statut Membre Dernière intervention 20 février 2013 4
24 févr. 2010 à 04:14
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 vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
24 févr. 2010 à 08:05
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 vendredi 30 octobre 2009 Statut Membre Dernière intervention 20 février 2013 4
24 févr. 2010 à 11:02
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 vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
24 févr. 2010 à 14:36
PWD ?
0
Toiine974 Messages postés 22 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 20 février 2013 4
24 févr. 2010 à 19:46
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 vendredi 30 octobre 2009 Statut Membre Dernière intervention 20 février 2013 4
24 févr. 2010 à 19:48
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 vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
25 févr. 2010 à 08:25
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 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 5 623
25 févr. 2010 à 08:40
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 vendredi 30 octobre 2009 Statut Membre Dernière intervention 20 février 2013 4
25 févr. 2010 à 17:17
Merci, je vais travailler sur cette piste.
Char, le souci, c'est que setenv fait partie des builtin que je dois recoder ^^'
0