Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    cambiare la directory di lavoro

    salve a tutti...sto cercando implemtare in C il comando della shel "cd".
    Il codice riportato sotto nn da errori,ma una volta eseguito il current directory non viene cambiata,nonostante la chiamata chdir vada a buon fine.
    QUALCUNO SA PERCHE'????

    Codice PHP:


    status
    =chdir(pathName);

    if(
    status==-1)
    {
    perror("Impossibile accedere alla directory specificata");
    return -
    1;
    }
    else
    return 
    0;


  2. #2
    nessuno sa qualcosa...e' importante!!!!

  3. #3
    Utente di HTML.it L'avatar di toraz
    Registrato dal
    Nov 2001
    Messaggi
    263
    Perché chdir cambia la directory di lavoro del processo in cui viene chiamata. Quando lanci il tuo programma la shell lo esegue in un altro processo rispetto al suo, col risultato che quando il programma termina e il controllo torna alla shell non è cambiato niente. Quello che cerchi di fare tu equivale al comando
    codice:
    (cd pathName)

  4. #4
    in realta' quello che sto facendo e' una shel tutta mia!!!.

    quando l'utente digita il comando cd pathname,creo un processo filgio con FORK ed eseguo il sorgente con exec.
    Quindi quello che dici te e' che nn devo fare una fork ma chiamare l'exec nel padre???...e quindi nel contesto della mia shell???? o ci sono altre tecniche??

  5. #5
    Utente di HTML.it L'avatar di toraz
    Registrato dal
    Nov 2001
    Messaggi
    263
    Originariamente inviato da pacemaker
    Quindi quello che dici te e' che nn devo fare una fork ma chiamare l'exec nel padre???...e quindi nel contesto della mia shell???? o ci sono altre tecniche??
    No, se chiami exec sostituisci il processo della shell con il tuo programma cd, quindi quando il programma termina la shell da cui lo avevi lanciato s'è persa. Devi chiamare chdir all'interno del codice della shell. Come devi farlo francamente non lo so, so come funzionano le cose in teoria ma in pratica il C lo capisco poco più che l'arabo. Potresti provare a guardare tra i sorgenti di Minix, se ti ci raccapezzi un po' col C non dovrebbe essere difficile da capire, e al limite ti passa la voglia e hai risolto il problema alla radice!

  6. #6

    RISOLTO

    basya effettuare la chiamata chdir nel codice della shel.Era piu' semplice del previsto!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.