The UNIX and Linux Forums  
Hallo und herzlich Willkommen aus den Vereinigten Staaten, die UNIX-und Linux-Foren! Vielen Dank für Ihren Besuch und die Teilnahme an unserem Global Community.

Go Back   Die UNIX-und Linux-Foren > Top Foren > High-Level-Programmierung
.
Google unix.com



High-Level-Programmierung Post Fragen zu C, C + +, Java, SQL, und andere Programmiersprachen hier.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
URGENT::: Kann jemand mir helfen bei der Schaffung von Message Queue appliction? arunchaudhary19 High-Level-Programmierung 9 11-20-2007 07:15 AM
Schaffung von 10 Prozess kpkant123 Shell Programmierung und Scripting 2 05-21-2007 05:28 PM
Schaffung Kind-Prozess Verwirren High-Level-Programmierung 12 05-27-2005 11:48 AM
Umleitung oder Rohrleitungen Fehlermeldung Mariner Shell Programmierung und Scripting 2 05-10-2005 03:04 PM
Wie man weiß, eine neue Datei im Prozess der Schaffung? Es wurde nicht geschlossen. linkjack High-Level-Programmierung 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 Tools Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 06-16-2009
p00ndawg p00ndawg is offline
Registrierte Nutzer
  
 

Join Date: Jun 2009
Beiträge: 8
3 Erstellen von Prozess-und Rohrleitungen eine Nachricht

sorry im sehr neu, aber ich bin um 3 Prozesse A, B und C und haben eine direkte Verbindung von A nach B, B nach C und C nach A.

hier ist mein Code. Es funktioniert, aber wenn man sich anschaut, was ich fett, solange ich zum Schluss gelesen p [0] Es scheint immer, unabhängig von der fett Abschnitt.

Kann mir jemand erklären?

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);
}

Zuletzt bearbeitet von vino; am 06-17-2009 12:52 AM..
 

Lesezeichen

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 08:21 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0