![]() |
|
|
Google unix.com
|
|||||||
| Форумы | Регистрация | Правила форума | Ссылки | Альбомы | ЧАВО | Список участников | Календарь | Поиск | Сегодняшние сообщения | Отметить форумы читать |
| Программирования высокого уровня Почтовые вопросы о C, C + +, Java, SQL и других языках программирования здесь. |
Подробнее UNIX и Linux Темы форума можно найти полезные
|
||||
| Нить | Резьба для начинающих | Форум | Ответы | Последнее сообщение |
| СРОЧНО::: Может ли кто-нибудь помочь мне в создании очереди сообщений Appliction?? | arunchaudhary19 | Программирования высокого уровня | 9 | 11-20-2007 07:15 AM |
| Процесс создания 10 | kpkant123 | Shell программирование и сценарии | 2 | 05-21-2007 06:28 PM |
| Создание детского процесс | Смешивать | Программирования высокого уровня | 12 | 05-27-2005 12:48 PM |
| Перепрофилирование или трубопроводы ошибке | моряк | Shell программирование и сценарии | 2 | 05-10-2005 04:04 PM |
| Как узнать новый файл находится в процессе создания? Она не была закрыта. | linkjack | Программирования высокого уровня | 2 | 02-11-2003 01:55 PM |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
||||
|
Создание 3 и трубопроводы сообщение
Простите им очень новый, но для этого я должен создать 3 процессы A, B и C, и прямая связь от А до Б, В-С, В и С для 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);
}
Последний раз редактировалось Вино; на 06-17-2009 01:52 AM.. |
| Закладки |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|