Announcement

Collapse
No announcement yet.

Verständnis execve

Collapse
This topic is closed.
X
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Verständnis execve

    Hi Community,
    ich befasse mich gerade ein wenig mit der C Programmierung unter Linux. (Hoffe das ich das hier im C++ Forum posten darf.)
    Ich versuche gerade den systemcall execve zu verstehen. Ich möchte gerne ein Programm starten mit übergabe von Argumenten und Environment Variablen.

    Dazu habe ich folgendes versucht:

    Code:
    #include <unistd.h>
    #include <stdio.h>
    
    void main()
    {
     char *argv[] = { "xterm", "-bg", "green", 0 };
     char *envp[] = { "PATH=/bin",  0 };
    
     execve(argv[0], &argv[0], envp);
    
     fprintf(stderr, "Oops!\n");
    }
    komischerweise liefer der systemcall mir einen fehler und die ausführung findet nicht statt. Weis jemand wieso?

    Wenn ich in der Shell
    Code:
    xterm -bg green PATH=/bin
    eingebe wird das anstandslos akzeptiert.

    Hab ich noch irgendwo etwas vielleicht vergessen?
    Danke für eure Hilfe

    Gruß Vertax

  • #2
    Crosspost

    http://www.c-plusplus.de/forum/310335

    geschlossen
    Christian

    Comment

    Working...
    X