PDA

Visualizza la versione completa : [C] Specificare directory di lavoro con exec()


mengoni
05-10-2007, 21:19
Salve a tutti. Spero che qualcuno possa aiutarmi...
Devo creare una Shell remota in C sotto linux: avro' un client che si autentica (specificando username-password-directory di lavoro) e chiede di eseguire dei comandi ad server remoto, comunicando tramite socket. Il server restituirā al client l'output del comando...

Praticamente nel server creo un processo figlio che si occupa di eseguire il comando richiesto, tramite una chiamata di tipo execvp().
Il mio problema č che non so come far eseguire il comando richiesto dal client nella directory di lavoro richiesta dal client.
Dovrei usare execvpe()? come dovrei fare per poter specificare la directory di lavoro?

Grazie a tutti

Mr.Bloom
09-10-2007, 12:29
il programma fatto partire con la exec mantiene la directory radice e la directory di lavoro corrente.
Quindi puoi scegliere la dir con chdir chiamata dal figlio prima di eseguire exec.

te lo scrivo in pseudo codice

fork()
if(padre){
continua loop
}else{ //figlio
chdir();
exec()

}

Loading