albertoparisi
28-05-2007, 17:26
Salve a tutti,
inanzitutto sono nuovo di questo forum e volevo farvi i complimenti vi seguo da un bel pò ma non avevo mai avuto occasione di registrartmi..
..ora quest'occasione è arrivata..
..sto sviluppando un piccolo programmino in c che se lanciato dalla shell di comando (es: ./nomeprogr stringa percorso) dovrebbe cercare la stringa "stringa" a partire da "percorso".Per far cio ho bisogno di creare un processo figlio con execlp che dovrebbe permettermi di invocare una shell per far eseguire una semplice find dove specificare cosa cercare e ridirigere l'output in un file di testo leggibile in un secondo momento dal processo padre..
allego il codice
****************************************************************
#include "main.h";
int main(int argc,char *argv[]){
pid_t pid;
FILE *fp;
fp=fopen("/users/Al/cercastring/azzo.txt","w");
if((fp!=NULL)){
printf("File ridirezione creato\n");
if((pid=fork())==-1){
perror("Errore nella creazione processo figlio!!\n");
fclose(fp);
return 2;
}
else{
printf("e fin qua ghe sen!!%d.\n",(int)getpid());
execlp("sh", "sh", "-c", "find &argv[2] -type d >> /users/Al/cercastring/azzo.txt", NULL);
perror("Errore nella chiamata a execlp!\n");
fclose(fp);
return 3;
}
fclose(fp);
}
else{
printf("Errore creazione file per la ridirezione!!\n");
}
return 0;
}
Ora il mio problema sta nel fatto che non so come poter specificare argv[2] in quanto non viene preso il valore ma considerato come stringa..
..qualcuno sa aiutarmi se mi sono spiegato bene..:D :D :D :D
Al
inanzitutto sono nuovo di questo forum e volevo farvi i complimenti vi seguo da un bel pò ma non avevo mai avuto occasione di registrartmi..
..ora quest'occasione è arrivata..
..sto sviluppando un piccolo programmino in c che se lanciato dalla shell di comando (es: ./nomeprogr stringa percorso) dovrebbe cercare la stringa "stringa" a partire da "percorso".Per far cio ho bisogno di creare un processo figlio con execlp che dovrebbe permettermi di invocare una shell per far eseguire una semplice find dove specificare cosa cercare e ridirigere l'output in un file di testo leggibile in un secondo momento dal processo padre..
allego il codice
****************************************************************
#include "main.h";
int main(int argc,char *argv[]){
pid_t pid;
FILE *fp;
fp=fopen("/users/Al/cercastring/azzo.txt","w");
if((fp!=NULL)){
printf("File ridirezione creato\n");
if((pid=fork())==-1){
perror("Errore nella creazione processo figlio!!\n");
fclose(fp);
return 2;
}
else{
printf("e fin qua ghe sen!!%d.\n",(int)getpid());
execlp("sh", "sh", "-c", "find &argv[2] -type d >> /users/Al/cercastring/azzo.txt", NULL);
perror("Errore nella chiamata a execlp!\n");
fclose(fp);
return 3;
}
fclose(fp);
}
else{
printf("Errore creazione file per la ridirezione!!\n");
}
return 0;
}
Ora il mio problema sta nel fatto che non so come poter specificare argv[2] in quanto non viene preso il valore ma considerato come stringa..
..qualcuno sa aiutarmi se mi sono spiegato bene..:D :D :D :D
Al