![]() |
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 |
| Frage zu grep, geschnitten, und Rohrleitungen | dyrt | Shell Programmierung und Scripting | 1 | 02-28-2008 11:12 PM |
| Rohrleitungen für die Ex von einem Skript | mph | Shell Programmierung und Scripting | 2 | 10-11-2007 04:54 PM |
| Rohrleitungen in UNIX | simo007 | UNIX for Dummies Questions & Answers | 3 | 05-23-2007 03:40 AM |
| Rohrleitungen | lnatz | Shell Programmierung und Scripting | 1 | 07-14-2006 03:30 AM |
| Hilfe (Piping ls, tr, cut) | Scan | Shell Programmierung und Scripting | 2 | 02-11-2006 08:40 AM |
|
|
LinkBack | Thread Tools | Suche diesen Thread | Rate Thread | Anzeige-Modi |
|
||||
|
Piping Frage
Ich habe eine Frage, Rohrleitungen, ich bin versucht zu implementieren Rohrleitungen auf meine eigene Schale, und ich bin mit einigen Schwierigkeiten esentially ... Ich versuche, etwas zu tun Kommando | Kommando | Kommando.
Ich kann es funktionieren, wenn die letzte Pfeife, Befehl ist nicht gespalten, sondern führt in der Schale und dann beendet .. aber ich muss es bis zum Verbraucher. I tryed die folgenden, aber es hängt .. irgendwelche Vorschläge? Ich habe das Gefühl, es hat etwas damit zu tun mit der Schließung / Eröffnung Deskriptoren, aber ich weiß nicht ... danke.: Code:
int pipe1[2], pipe2[2];
pipe(pipe1);//create first pipe
pid_t PID=fork();
if(PID==0){
close(1);
dup(pipe1[1]);
close(pipe1[0]);
close(pipe1[1]);
execvp(*argv,argv);
printf("operation failed");
} else {
pipe(pipe2);
pid_t PID2=fork();
if (PID2==0) {
close(0);
dup(pipe1[0]);
close(1);
dup(pipe2[1]);
close(pipe1[0]);
close(pipe1[1]);
close(pipe2[0]);
close(pipe2[1]);
execvp(*argv2, argv2);
} else {
pid_t PID3=fork();
waitpid(PID3,&status,0);<-----Not sure about this
if(PID3==0){
close(0);
dup(pipe2[0]);
close(pipe1[0]);
close(pipe1[1]);
close(pipe2[0]);
close(pipe2[1]);
execvp(*argv3, argv3);
}
}
}
Zuletzt bearbeitet von Yogesh Sawant; am 04-25-2008 04:33 AM.. Grund: Code-Tags hinzugefügt |
| Lesezeichen |
| Thread Tools | Suche diesen Thread |
| Anzeige-Modi | Rate this thread |
|
|