Execl di un comando shell e redirezione

di il
4 risposte

Execl di un comando shell e redirezione

Salve a tutti. In un programma C dovrei eseguire grep, per ricercare in un file. Cosa semplice, infatti uso questo comando:
x=execlp("grep", "grep", "giuseppe", "/Users/Peppe/testo.txt");
	if(x < 0) perror("execl"), exit(1);
e funziona benissimo..stampandomi nella shell (in cui chiamo il programma .c) il risultato come farebbe grep. Ma se io volessi che questo risultato non venisse stampato nella shell, ma vorrei usarlo internamente nel programma (tipo assegnare il risultato ad un array di stringhe) oppure meglio ancora redirigere il risultato in un file di testo, come si potrebbe fare???

grazie

4 Risposte

  • Re: Execl di un comando shell e redirezione

    Per usare il comando grep salvando l'output su un file si può fare cosi:
    grep parola filedacercare > output
    in questo modo l'output viene salvato nel file di resto.
    Quindi prova ad usarlo nella funzione c con questo parametro.
  • Re: Execl di un comando shell e redirezione

    Ma intendi cosi:
    x=execlp("grep", "grep", "giuseppe", "/Users/Peppe/testo.txt > file.txt", NULL);
    Perchè non va bene...grep mi dice
    grep: /Users/Peppe/testo.txt > file.txt: No such file or directory
    Non ho capito dove inserire la "redirezione"...ho provato a metterla come ulteriore argomento ma neppure va bene....potresti farmi un esempio con la mia riga di codice?
  • Re: Execl di un comando shell e redirezione

  • Re: Execl di un comando shell e redirezione

    Grazie
Devi accedere o registrarti per scrivere nel forum
4 risposte