The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > High Level Programmering
.
google unix.com



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

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 06-16-2009
p00ndawg p00ndawg is offline
Registrert bruker
  
 

Bli Dato: juni 2009
Innlegg: 8
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
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 04:15.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0