![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Rules | Lenker | Album | FAQ | Medlemsliste | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| High Level Programmering Post spørsmål om C, C + +, Java, SQL og andre programmeringsspråk her. |
Mer UNIX og Linux Forum Emner Du kan finne nyttig
|
||||
| Tråd | Tråd startet | Forum | Svar | Siste innlegg |
| HASTER::: Kan noen hjelpe meg i å lage meldingen køen appliction? | arunchaudhary19 | High Level Programmering | 9 | 11-20-2007 07:15 |
| opprette 10 prosessen | kpkant123 | Shell programmering og Skripting | 2 | 05-21-2007 06:28 |
| skape barnet prosessen | Forvirre | High Level Programmering | 12 | 05-27-2005 12:48 |
| Omadressering eller rør feilmelding | Mariner | Shell programmering og Skripting | 2 | 05-10-2005 04:04 |
| Hvordan vet en ny fil er i ferd med å skape? Det har ikke vært stengt. | linkjack | High Level Programmering | 2 | 02-11-2003 01:55 |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
||||
|
Opprette 3 prosess og rør en melding
sorry im helt ny i dette, men jeg skulle lage 3 prosesser A, B og C, og har en direkte kobling fra A til B, b til c, og c til a. her er min kode. Det gjør arbeidet, men hvis du ser på hva jeg fet så lenge min siste lese er p [0] synes det alltid å fungere, uavhengig av fet delen. Kan noen forklare dette? Code:
#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);
}
Sist endret av Vino; 06-17-2009 på 01:52.. |
| Hugseliste |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|