![]() |
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.
|
|
Google unix.com
|
|||||||
| Foren | Registrieren | Forum-Regeln | Links | Alben | FAQ | Benutzerliste | Kalender | Suche | Die heutige Beiträge | Alle Foren als gelesen markieren |
| 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 |
|
|
LinkBack | Thread Tools | Suche diesen Thread | Rate Thread | Anzeige-Modi |
|
||||
|
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 |
| Anzeige-Modi | Rate this thread |
|
|