|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Oct 2002
Città: bologna
Messaggi: 541
|
per programmatori *nix/linux
qualcuno è un mago con pipe e dup?
non riesco a capire come avviene la redirezione di stdin e stdout su pipe... ad esempio: main() { int pid, fd[2]; char msg[9]="hwupgrade"; pipe(fd); pid=fork(); if(!pid) { close(fd[0]); close(1); dup(fd[1]); close(fd[1]); write(1, msg, sizeof(msg)); close(1); } else ecc ecc... } non capisco perché: 1)chiude l'estremità della pipe dedicata alla lettura : close(fd[0]) 2)chiude lo stdout 3)duplica il descrittore dell'estremità della pipe riservata alla scrittura 4)chiude l'estremità della pipe riservata alla scrittura (???) write(1, msg, sizeof(msg)); <<<--- dovrebbe scrivere su stdout... ma... non è chiuso???? ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2002
Città: bologna
Messaggi: 541
|
ho capito!
![]() scusatemiiii |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
![]()
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:51.