![]() |
Olá e boas-vindas de Estados Unidos para o UNIX e Linux Forum! Obrigado por visitar e fazer parte da nossa comunidade global.
|
|
google unix.com
|
|||||||
| Fóruns | Registar | Fórum Regimento | Ligações | Álbuns | FAQ | Lista deputados | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| Alto Nível de programação Post perguntas sobre C, C + +, Java, SQL, e outras linguagens de programação aqui. |
Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
|
||||
| Fio | Thread Starter | Fórum | Respostas | Última postagem |
| URGENTE::: Alguém pode me ajudar na criação de fila mensagem appliction? | arunchaudhary19 | Alto Nível de programação | 9 | 11-20-2007 07:15 |
| criação de 10 processos | kpkant123 | Programação Shell Script e | 2 | 05-21-2007 05:28 |
| criar processo filho | Confundir | Alto Nível de programação | 12 | 05-27-2005 11:48 |
| Redirecionamento encanamentos ou mensagem de erro | marinheiro | Programação Shell Script e | 2 | 05-10-2005 03:04 |
| Como saber se um novo arquivo em processo de criação? Não foi fechado. | linkjack | Alto Nível de programação | 2 | 02-11-2003 01:55 |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
||||
|
Criando 3 processo e encanamentos de uma mensagem
im sorry muito novo para isso, mas eu sou supostamente para criar 3 processos A, B e C e têm uma ligação directa a partir de um b, b em c e c para a.
aqui é o meu código. Ela não funciona, no entanto, se você olhar para o que eu negrito, enquanto a minha última leitura é p [0], parece sempre a funcionar, independentemente da secção em negrito. Alguém pode explicar isto? Código:
#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);
}
Última edição por vino; em 06/17/2009 12:52.. |
| Marcadores |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|