Execl di un comando shell e redirezione

di Anonimizzato4252 il
4 risposte
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

  • 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.
  • 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?
  • Grazie
Devi accedere o registrarti per scrivere nel forum
4 risposte