(Linux/Unix) Integer in über Pipe übergeben?!



  • Hallo liebe C++ Forumuser!

    Ich habe ein kleines C Programm geschrieben, dass mehrere Prozesse mittels fork() erstellt. Jetzt sollen zwischen diesen Prozessen über eine Pipe Integer Variablen getauscht werden. Mit Char-Variablen hat das ganze schon prima funktioniert wenn ich jedoch wie in dem Beispiel hier das ganze über Integer versuche bekomme ich leider beim read einen falschen Wert zurück.

    Code:

    .. (unwichtiger Code weggelassen)
    int deskr[2];
    int ibuf[1];
    ..
    pipe(deskr) (Pipe im Vaterprozess erstellt)
    ..
    (im Kindprozess 1:)
    ibuf[0]=5; (Integer Wert der übertragen werden soll, an Arraypos 0)
    write(deskr[1],ibuf,1);
    ..
    (im Kindprozess 2:)
    read(deskr[0],ibuf,1);
    ..

    Wenn ich nun im Kindprozess 2 den ibuf[0] ausgebe, dann erhalte ich den Wert 0 zurück anstatt 5. Woran kann das liegen? Ist es überhaupt möglich Integer zu übertragen?

    Vielen Dank schonnmal
    VeNom



  • so wie ich das sehe, willst du ins Linux/Unix forum.
    C++ kennt keine Prozesse oder Threads. und auch keine Pipes 😉


Anmelden zum Antworten