environment variablen nur für einen prozess



  • Hallo Leute!

    Ist es möglich die Environment Variablen (die man per getenv() ansprechen kann) nur für einen Prozess zu setzen?

    Hintergrund:
    Ich will ein Programm schreiben, welches einem CGI Script 'vorgaukelt' auf einem Server zu laufen.
    Sprich ich muss diverse Environment Variablen setzen, und per stdin Daten an dieses Programm zu übergeben.
    Weiters muss ich alle Ausgaben die dieses Programm an stdout schickt wieder abfangen.

    Leider kenn ich mich unter Unix nicht besonders aus 😞 aber ihr könnt mir sicherlich helfen.



  • schau dir mal bei execve(2) den Parameter envp an



  • ok, danke. das sieht gut aus.

    eine frage noch:
    in meiner manpage (http://sman.informatik.htw-dresden.de:6711/man?=execve&=2) steht nicht, dass die übergebenen environment variablen auch per getenv ansprechbar sind.

    kann ich also diese variablen auch per getenv ansprechen?
    selber testen kann ich leider nicht, da ich hier kein linux habe.



  • Original erstellt von Shade Of Mine:
    kann ich also diese variablen auch per getenv ansprechen?

    Ja. Umgebungsvariablen sind Umgebungsvariablen, egal, wo sie herkommen.

    Wie machst Du das mit stdin/out? Pipes?



  • Original erstellt von SG1:
    Wie machst Du das mit stdin/out? Pipes?

    danke!

    dieses problem habe ich noch nicht gelöst.
    ich denke ich werde pipes verwenden (zumindest kenne ich keine andere Lösung)
    tipps sind natürlich willkommen


Anmelden zum Antworten