Праблема з cin i dup2()
Добавлено: 17 сен 2004, 17:25
Карацей трэба cout прогі перахапіць, прачытаць і выкарыстаць у варожых мэтах, для чаго я:
1) int pipe[2]; pipe(PIP1);
2) fork()
A) дачэрні працэс:
dup2(PIP1[1],1);
close(PIP1[1]);close(PIP1[2]);
execlp("programm with params");
/*перанакіраваў cout у pipe */
Б) Бацькоўскі працэсс:
dup2(PIP1[0],0);
close(PIP1[1]); /*перанакіраваў cin на чытаньне з pipe */
і спакойна чытаю з cin'а тое, што мне прожка ў другім працэссе выводзіць.
Увага, пытаньне! Як мне пасьля усяго гэтага вярнуць cin у зыходны стан (каб ён з клавы чытаў)???
1) int pipe[2]; pipe(PIP1);
2) fork()
A) дачэрні працэс:
dup2(PIP1[1],1);
close(PIP1[1]);close(PIP1[2]);
execlp("programm with params");
/*перанакіраваў cout у pipe */
Б) Бацькоўскі працэсс:
dup2(PIP1[0],0);
close(PIP1[1]); /*перанакіраваў cin на чытаньне з pipe */
і спакойна чытаю з cin'а тое, што мне прожка ў другім працэссе выводзіць.
Увага, пытаньне! Як мне пасьля усяго гэтага вярнуць cin у зыходны стан (каб ён з клавы чытаў)???