The UNIX and Linux Forums  

Go Back   В UNIX и Linux Форумы > Топ форумы > Программирования высокого уровня
.
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

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered By Powered by Google
 
LinkBack Резьба Инструменты Искать в этом Thread Оценить Thread Режимы дисплея
Old 06-16-2009
p00ndawg p00ndawg is offline
Зарегистрированный пользователь
  
 

Регистрация: июнь 2009
Сообщений: 8
Создание 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
Искать в этом Thread:

Расширенный поиск
Режимы дисплея Оценить эту ветку
Оценить эту ветку:

Отправка Правила
Вы не может Начать новую нитей
Вы не может Почтовые ответы
Вы не может Почтовые вложения
Вы не может Редактировать Ваши сообщения

BB код быть На
Смайлики являемся На
[IMG] код На
HTML-код Вне
Trackbacks являемся На
Pingbacks являемся На
Refbacks являемся На




Часовой пояс GMT -4. Текущее время 04:27 PM.


Powered By: Справка, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Язык Переводы на питание от .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
В UNIX и Linux форумы Содержание Copyright © 1993-2009. Все права Reserved.Ad управления по RedTyger

Содержание соответствующие URL-адреса в vBSEO 3.2.0