|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
[Linux] redirezione stdin e stdout del processo figlio
che funzioni devo usare su Linux per redirigere su determinati file descriptors miei lo standard input e lo standard output di un processo figlio? se poi fossero funzioni presenti anche nel runtime C del MinGW sarebbe assolutamente perfetto, sennò mi arrangio con #ifdef e STARTUPINFO (sono alle prese col solito codice portabile Linux/Win32); grazie.
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
Usa la funzione "dup2()" . per vedere il funzionamento da linux chiama :
man dup2 Assicurati di avere le Manual Pages installate oppure guarda http://man.he.net/man2/dup2 Non so però se Mingw32 le possieda o meno Ciao
__________________
GPU Compiler Engineer |
|
|
|
|
|
#3 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
mi sono letto la documentazione di dup2. inizialmente ho pensato d'istinto: "su Win32 dup wrappa DuplicateHandle, ma dup2 non si può realizzare". E INVECE C'E'!!
sono andato a spulciarmi i sorgenti (il VCRT di Microsoft è opensource; ci credereste mai? ma la DuplicateHandle chiude il "target handle"? voglio assolutamente approfondire questo aspetto |
|
|
|
|
|
#4 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
ehm...
![]() nel MSVCRT i file descriptors non corrispondono agli handle la dup2 di Windows crea un nuovo HANDLE e lo mappa sul secondo file descriptor ![]() se il secondo file descriptor era aperto lo chiude con la close, la quale chiude l'HANDLE su cui è mappato. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:14.




















