Pipe in Shell



  • Hallo Leute, ich muss in der Shell eine Pipe-Funktionalität implementieren..

    Ich vesrtehe nicht so ganz die fett-markierten Zeilen, könnte mir es jemand erklären bitte?

    Vielen Dank im Voraus!!

    void isPipe(char *cmd) {

    // pipeConnection[0] -> LeseDeskriptor
    // pipeConnection[1] -> SchreibDeskriptor
    int pipeConnection[2];

    char *inp[2];
    char *ptr, string1[100], string2[100];
    int i=1,j;

    ptr = strtok(cmd,"|");
    inp[0] = ptr;
    ptr = strtok(NULL,"|");
    if (ptr == NULL) {
    handleCmd(inp[0],0,NULL);
    }
    else {
    inp[1] = ptr;
    inp[1] = inp[1]+1;

    printf("pipePre: %s\n",inp[0]);
    printf("pipeAft: %s\n",inp[1]);

    if(pipe(pipeConnection)) { //??????????????????????
    printf("Fehler, pipe konnte niche geoeffnet werden\n");
    exit(0);

    }

    // 1. Aufruf Kindprozess schreibproz pipeCon[1]
    handleCmd(inp[0],1,pipeConnection);

    // 2. Aufruf Kindprozess lesebproz pipeCon[0]
    handleCmd(inp[1],-1,pipeConnection);
    }
    }


  • Mod

    Wenn pipe(pipeConnection), dann gib aus "Fehler, pipe konnte niche geoeffnet werden\n" und brich mit Code 0 ab.



  • Danke!!!!



  • Füttere Google mit "man "+Standardlibfunction und du bekommst jede Menge Infos;)


  • Mod

    julchatt schrieb:

    Danke!!!!

    😕 Entweder verarscht du mich jetzt mit deiner Antwort genau so wie ich dich mich meiner veräppeln wollte oder ... Nein, das ist die einzige Möglichkeit.

    Aber ein guter. Bin zuerst drauf reingefallen.


Anmelden zum Antworten