|
|
|
|
Strumenti |
03-04-2010, 13:56 | #1 |
Senior Member
Iscritto dal: Mar 2009
Messaggi: 753
|
[C] Linux pipe
Ciao, c'è un metodo per mettere in pausa il processo principale in attesa che il processo filgio avviato con la funzione popen() ha terminato?
Oppure occorre fare manualmente con fork() ecc..? Nel mio caso si tratta di meno di mezzo secondo però mi scoccia mettere usleep(500000) dopo popen() per evitare errori di visualizzazione sul terminale. Inolter il valore di usleep() potrebbe non andate bene su altri sistemi magari più lenti. Non ho cercato molto a dire il vero, sapete consigliarimi? Grazie. |
03-04-2010, 14:27 | #2 |
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
Ciao non ho mai utilizzato popen ma per sincronizzare dei processi puoi sempre utilizzare un semaforo! Almeno è sicuro che c'è sincronia!
|
03-04-2010, 14:38 | #3 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53970
|
Mettiti in lettura sulla pipe, no ?
|
03-04-2010, 14:46 | #4 | ||
Senior Member
Iscritto dal: Mar 2009
Messaggi: 753
|
Quote:
Quote:
l'ultimo programma in cui l'avevo usata avevo scritto: Codice:
FILE*ps_out=popen("ls /proc | grep -v -e [a-z] | sort -n 2>/dev/null","r"); if(ps_out==NULL) { perror("popen"); exit(1); } EDIT: certo che se lo provo mi accorgo no? |
||
03-04-2010, 15:41 | #5 |
Senior Member
Iscritto dal: Mar 2009
Messaggi: 753
|
e no...
snip: Codice:
out = popen("cat title","w"); if(out <= 0) error(PIPE,NULL); printf..... |
03-04-2010, 16:02 | #6 | ||
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
Quote:
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
||
03-04-2010, 16:19 | #7 |
Senior Member
Iscritto dal: Mar 2009
Messaggi: 753
|
perbacco e si che mi leggo sempre le sintassi delle funzioni da lì
grazie, tutto ok! |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:59.