Schreiben von Daten in Rohr C++

ich brauche etwas zu tun, wie

echo "data" | cat

Mit

echo "data" | my program

In meinem Programm ruft die Katze und sendet meine stdin, um die Katze stdin und Holen Sie sich die stdout von der Katze.

Ich bereits Gabel Prozess, schließen Sie das schreiben und das Lesen, dup2 Sie und execl..
So kann ich die stdout aus, wenn ich einen execl("/bin/sh", "sh", "-c", "ls -lahtr", NULL) ich kann die Datei Liste als Ausgabe.

aber ich weiß nicht, wie, um Daten zu senden, wie senden Sie die echo-Daten, die ich Lesen von meiner stdin und senden Sie an die execl("/bin/sh", "sh", "-c", "Katze", NULL) stdin und zurück mein echo string.

#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sstream>
#include <iostream>

using namespace std;

int main()
{
    int ficheiro_fd;
    int pipe_fd[2];
    char buffer[20];
    int num_bytes;

    pipe(pipe_fd);

    switch ( fork() ) {
    case -1:
        exit(1);
    case 0:
        close(pipe_fd[1]);
        dup2(pipe_fd[0], 0);
        execlp("/usr/bin/base64"," ", NULL);
        break;
    default:
        close(pipe_fd[0]);
        //ficheiro_fd = open("output.txt", O_RDONLY);
    while ((num_bytes = read(fileno(stdin), buffer, 1)) > 0){
            write(pipe_fd[1], buffer, num_bytes);
            }
        close(pipe_fd[1]);
        wait((int*)getpid());
    }

    return 0;
}

Mit diesem code, den ich kann senden Sie einige Daten, um das Programm und schreibt es auf den Bildschirm, ich will wissen, wie kann ich die stdout und senden Sie es an eine variable.
Vielen Dank für die Hilfe ppl.

Es scheint, wie Sie etwas tun, das völlig nutzlos. Bitte zeigen Sie einige code.
Kannst du deinen code? deine Frage ist ein wenig verworren. Im Allgemeinen ein Rohr ist nur ein Weg, ein Prozess liest, während die andere schreibt, kann man nicht senden von Daten aus dem reader wieder an den Schreiber über die gleiche Leitung. So können Sie die echo-Daten | your_prog | Katze ... was wird passieren Ihr Programm stdout cat stdin...
Hi, teilte ich den code, den Grund brauche ich, werde ich senden ein Kommando durch sockel und die ich verarbeiten muss, auf der anderen Seite mit meinem input und die Rückkehr.

InformationsquelleAutor Lefsler | 2011-12-26

Schreibe einen Kommentar