execlp



  • Hallo,

    ich verstehe irgendwie die execlp-Fkt nicht so richtig.

    execlp("./prog","./prog",NULL);
    

    So sieht mein Aufruf im Programm aus. Im aufzurufenden Programm steht ein simples printf. Das Problem ist das rein gar nichts passiert, also das in prog nicht reingegangen wird. Ich weiß nicht, ob die beiden ersten Argumente korrekt angegeben sind. prog und das aufrufende Programm stehen im gleichen Verzeichnis.
    Also sollte das doch eigentlich funktionieren? Kann das vielleicht an Rechten liegen, also dass das aufrufende Programm nicht befugt ist, prog zu starten?

    In Systemprogrammierung und Linux bin ich ein totaler Neuling und ich hoffe, dass Ihr mir weiterhelfen könnt.

    Gruß

    InfoStud



  • Was genau geht nicht? Was liefert execlp zurück und was sagt errno? Lass mal ./ weg.



  • InfoStud84er schrieb:

    Hallo,

    ich verstehe irgendwie die execlp-Fkt nicht so richtig.

    execlp("./prog","./prog",NULL);
    

    So sieht mein Aufruf im Programm aus. Im aufzurufenden Programm steht ein simples printf. Das Problem ist das rein gar nichts passiert, also das in prog nicht reingegangen wird.

    Schwer zu sagen, ohne Mehr Information über dein System zu haben. Es kann daran liegen, dass in deinem Working Directory keine ausführbare Datei "prog" existiert, oder dass du keine Rechte zur Ausführung hast,...

    mach das

    execlp("./prog","./prog",NULL);
    perror("execlp");
    

    wenn execlp einen Fehler erzeugt, dann wird perror dir 100% mehr Informationen liefern können.


Anmelden zum Antworten