![]() |
|
|
Googleのunix.com
|
|||||||
| 高レベルのプログラミング は、 C 、 C + +についての質問の投稿は、 Java 、 SQL 、および他のプログラミング言語です。 |
その他のUNIXおよびLinuxフォーラムトピックは参考にすること
|
||||
| スレッド | スレッドスターター | フォーラム | 返信 | 最後の投稿 |
| はgrep 、カットについて質問し、配管 | dyrt | シェルプログラミングとスクリプティング | 1 | 2008年2月28日 11:12午後 |
| スクリプトから元に配管 | マイル | シェルプログラミングとスクリプティング | 2 | 2007年10月11日 04:54午後 |
| UNIXで配管 | simo007 | UNIXのダミー質問と回答のため | 3 | 2007年5月23日 03:40午前 |
| 配管 | lnatz | シェルプログラミングとスクリプティング | 1 | 2006年7月14日 03:30午前 |
| (配管ls 、トランジスタ、カット)ヘルプ | スキャン | シェルプログラミングとスクリプティング | 2 | 2006年2月11日 08:40午前 |
![]() |
|
|
LinkBack | スレッドツール | このスレッドを検索 | スレッドを評価 | 表示モード |
|
|
|
||||
|
配管質問
私は、自分の殻に配管を実装しようとしていると、配管質問があるいくつかのトラブルが生じています... esentially iコマンドにすることをしようとしている|コマンド|コマンドを実行します。 私は最後のコマンドをフォークパイプはありませんが、正常に動作すること、を得ることができますが、シェルで実行して終了して...僕はそれがフォークする必要があります。私は以下のtryedが、何か提案..ハングのだろうか?私はそれを閉じるとは何か/オープン記述子がわからない...感謝されている感がある。 : コード:
int pipe1[2], pipe2[2];
pipe(pipe1);//create first pipe
pid_t PID=fork();
if(PID==0){
close(1);
dup(pipe1[1]);
close(pipe1[0]);
close(pipe1[1]);
execvp(*argv,argv);
printf("operation failed");
} else {
pipe(pipe2);
pid_t PID2=fork();
if (PID2==0) {
close(0);
dup(pipe1[0]);
close(1);
dup(pipe2[1]);
close(pipe1[0]);
close(pipe1[1]);
close(pipe2[0]);
close(pipe2[1]);
execvp(*argv2, argv2);
} else {
pid_t PID3=fork();
waitpid(PID3,&status,0);<-----Not sure about this
if(PID3==0){
close(0);
dup(pipe2[0]);
close(pipe1[0]);
close(pipe1[1]);
close(pipe2[0]);
close(pipe2[1]);
execvp(*argv3, argv3);
}
}
}
Yogesh Sawantで編集最終; 2008年4月25日に 04:33午前..理由:コードのタグを追加 |