[C] Utilisation de chdir

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 ?
Configuration: FreeBSD / Firefox 2.0.0.6

12 réponses

  1. Merci, je vais travailler sur cette piste.
    Char, le souci, c'est que setenv fait partie des builtin que je dois recoder ^^'
    1. Contributeur
      après ton chdir, si tu ouvres un shell, il sera dans le bon répertoire

      chdir("/tmp");
      system(getenv("SHELL"));
      1. Contributeur
        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
        1. 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.
          1. 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...
            1. 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.
              1. Contributeur
                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 ?
                1. 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 ?
                  1. Modérateur
                    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.
                    1. Contributeur
                      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
                      1. Contributeur
                        Salut.
                        Comment sait tu que ça ne fonctionne pas ?
                        donne nous un code concret, qui ne fonctionne pas, ça sera plus simple.