undefined reference to `exec'
-
Hallo,
welche Lib muss ich denn dazu linken um exec benutzen zu können? Ich dachte eigentlich, dass das nicht nötig wäre. Danke.
-
Meinst du vielleicht man: execve(2) bzw. einen der Wrapper (man: execl(3) ...).
-
Hallo,
sowohl als auch. Bei allen exec-Varianten aus unistd.h erhalte ich undefinierte Referenzen.
-
Also etwa
#include <unistd.h> int main(int argc, char *argv) { execl("/bin/ls", ".", 0); return 0; }
kompiliert hier anstandslos. Die ganzen exec-Funktionen dürften sich in der C-Library (/lib/libc.so.*) befinden, welche ansich automatisch dazugelinkt wird.
-
Probier mal ein minimales Beispiel. Wie gesagt undefined reference to `exec' deutet auf einen Tippfehler hin
@TriPhoenix
argv[0] sollte aber der Aufrufparameter sein :p Das funktioniert hier nur, weil /bin/ls . nimmt, wenn kein Parameter (außer argv[0], was ja immer gesetzt ist) angegeben wurde.#include <unistd.h> int main(void) { execl("/bin/ls", "ls", "/", 0); return 0; }