Hier ergeben sich immer bessere Dinge

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Benutzeravatar
weedy
Beiträge: 585
Registriert: 02.11.2002 21:47:49
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Hier ergeben sich immer bessere Dinge

Beitrag von weedy » 06.05.2016 14:30:27

Code: Alles auswählen

$ touch a.out
$ chmod a+x a.out 
$ ./a.out 
$ ./a.out --help
$ ldd a.out 
        das Programm ist nicht dynamisch gelinkt
Zusatzinfo: a.out hat vorher nicht existiert, und ist nach touch eine leere Datei.

Kann mir einer erklären, wozu das gut ist?

Gruß

Benutzeravatar
heisenberg
Beiträge: 4138
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Hier ergeben sich immer bessere Dinge

Beitrag von heisenberg » 06.05.2016 14:36:33

ldd a.out
das Programm ist nicht dynamisch gelinkt
Die Aussage ist völlig korrekt. ldd hat in der übergebenen Datei kein dynamisch gelinktes Programm erkannt - was zur korrekten Erfüllung der Aufgabe von ldd erforderlich ist.

Was für einen Sinn erwartest Du mit der Ausführung einer unsinnigen Aktion?

Benutzeravatar
weedy
Beiträge: 585
Registriert: 02.11.2002 21:47:49
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Hier ergeben sich immer bessere Dinge

Beitrag von weedy » 06.05.2016 14:47:07

heisenberg hat geschrieben:
ldd a.out
das Programm ist nicht dynamisch gelinkt
Die Aussage ist völlig korrekt. ldd hat in der übergebenen Datei kein dynamisch gelinktes Programm erkannt - was zur korrekten Erfüllung der Aufgabe von ldd erforderlich ist.

Was für einen Sinn erwartest Du mit der Ausführung einer unsinnigen Aktion?
Ich hätte zumindest erwartet, dass sich eine leere Datei nicht ausführen lässt.

Gruss

Liffi
Beiträge: 2346
Registriert: 02.10.2004 01:33:05

Re: Hier ergeben sich immer bessere Dinge

Beitrag von Liffi » 06.05.2016 15:43:12

weedy hat geschrieben: Ich hätte zumindest erwartet, dass sich eine leere Datei nicht ausführen lässt.
Sie ist doch ein gültiges Konstrukt für deine Shell.

Benutzeravatar
weedy
Beiträge: 585
Registriert: 02.11.2002 21:47:49
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Hier ergeben sich immer bessere Dinge

Beitrag von weedy » 06.05.2016 16:11:31

Liffi hat geschrieben:
weedy hat geschrieben: Ich hätte zumindest erwartet, dass sich eine leere Datei nicht ausführen lässt.
Sie ist doch ein gültiges Konstrukt für deine Shell.
Und warum meckert dann ldd nicht an, dass es kein elf-binary ist?

Gruß

Liffi
Beiträge: 2346
Registriert: 02.10.2004 01:33:05

Re: Hier ergeben sich immer bessere Dinge

Beitrag von Liffi » 06.05.2016 16:51:56

Ich habe mal versucht ein bisschen ldd Quellcode[1] zu lesen.
Wenn ich das richtig verstehe, versucht er am Anfang zu ermitteln, ob es sich um eine dynamisch gelinkte Executable handelt. In diesem Fall ist das aber nicht so und er gibt das entsprechend aus und verabschiedet sich. Der Return Value müsste deshalb auch 1 sein. echo $? sollte also 1 ausgeben.

[1] http://src.gnu-darwin.org/src/usr.bin/ldd/ldd.c.html

Antworten