|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Palermo
Messaggi: 1079
|
Reindirizzamento output in C
Salve a tutti, vorrei reindirizzare l'output su una pipe e poi reimpostarlo, per impostarlo sulla pipe credo si saperlo fare:
pipe(fd[2]); close(1); dup(fd[0]); ora per riportare lo standard input al suo normale file descriptor cosa devo fare? Grazie, ciao ciao. |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Codice:
int fd_pipe[2]; int fd_out_bak; pipe (fd_pipe); /* ottiene i due descrittori della pipe */ fd_out_bak = dup (0); /* salva il descrittore dello standard output */ dup2 (fd_pipe[1], 0); /* fa puntare lo standard output sulla pipe di scrittura */ .... qui se scrivi sul descrittore 0 (output) scrivi in realtà sulla pipe .... dup2 (fd_out_bak, 0); /* rimette a posto lo standard output */ /* chiude tutti i descrittori */ close (fd_out_bak); close (fd_pipe[0]); close (fd_pipe[1]);
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Palermo
Messaggi: 1079
|
Proprio lui!!! Esatto!!!!!
Ciao posso chiederti un'altra cosa? La funzione time(NULL) restituisce un intero? Se la chiamo in due momenti diversi mi dovrebbe dare due numeri diversi giusto? Quindi se faccio la differenza tra la prima chiamata e la seconda dovrei ottenere il tempo trascorso tra le due chiamate no? Questo tempo in cosa è espresso? Come posso trasformarlo in secondi? Se non si calcola così il periodo di tempo in secondi tra due chiamate di una funzione qualsiasi come posso calcolarlo (sempre su sistemi unix)? Grazie, ciao ciao. |
|
|
|
|
|
#4 | ||||
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Quote:
Quote:
Quote:
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
||||
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:57.



















