![]() |
Helloやアメリカ合衆国へようこそ! UNIXおよびLinuxフォーラム!訪問し、当社のグローバルコミュニティに参加いただきありがとうございます。
|
|
Googleのunix.com
|
|||||||
| 高レベルのプログラミング は、 C 、 C + +についての質問の投稿は、 Java 、 SQL 、および他のプログラミング言語です。 |
その他のUNIXおよびLinuxフォーラムトピックは参考にすること
|
||||
| スレッド | スレッドスターター | フォーラム | 返信 | 最後の投稿 |
| 緊急: : :誰applictionメッセージキューを作成するに手伝ってくれるか? | arunchaudhary19 | 高レベルのプログラミング | 9 | 2007年11月20日 07:15午前 |
| 10のプロセスを作成する | kpkant123 | シェルプログラミングとスクリプティング | 2 | 2007年5月21日 06:28午後 |
| 子プロセスを作成する | 混乱 | 高レベルのプログラミング | 12 | 2005年5月27日 12:48午後 |
| リダイレクトやエラーメッセージ配管 | 船員 | シェルプログラミングとスクリプティング | 2 | 2005年5月10日 04:04午後 |
| どのように新しいファイルを作成する過程にあるのを知ってか?が閉鎖されていません。 | linkjack | 高レベルのプログラミング | 2 | 2003年2月11日 01:55午後 |
|
|
LinkBack | スレッドツール | このスレッドを検索 | スレッドを評価 | 表示モード |
|
||||
|
3プロセスの作成およびメッセージの配管
イム申し訳ないけれど、私は非常に新しい本、 B 、 Cを3プロセスを作成してからの直接のリンクがあるのですAからBへ、 CからB 、およびAにç
ここに私のコードです。それは仕事が長い場合、私は私の最後の太字で表示を見て何を読むとp [ 0 ]は常に関係なく、太字のセクションの仕事のようです。 誰もこれを説明することができますか? コード:
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>
#define MSGSIZE 14
char *message = "hello, world!";
main() {
char inbuf[MSGSIZE];
int p[3];
pid_t pid;
pid_t pid1;
if (pipe(p) == -1){
perror("pipe call");
exit(1);
}
pid = fork();
pid1 = fork();
if(pid == -1){
perror("Fork failed");
exit(1);
}
if(pid | pid1 == 0)//process A
{
close(p[0]);
write(p[1], message, MSGSIZE);
read(p[1], message, MSGSIZE);
write(p[2], message, MSGSIZE);
}
/*else if(pid1 == 0){
close(p[1]);
//read(p[1], message, MSGSIZE);
write(p[2], message, MSGSIZE);
}*/
else{
//parent process C
close(p[2]);
read(p[0], inbuf, MSGSIZE);
printf("Pipelined message return:%s\n", inbuf);
wait(NULL);
}
exit(0);
}
ヴィノの編集最終更新、 2009年6月17日に 01:52午前.. |