PDA

View Full Version : per programmatori *nix/linux


xfulviox
04-06-2003, 18:23
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????

:muro:

xfulviox
04-06-2003, 18:54
ho capito! ;)
scusatemiiii

ilsensine
04-06-2003, 19:25
char msg[9]="hwupgrade";

Quanti byte occupa una stringa di n caratteri? ;)