Hallo, Josef Spillner wrote:
Am Donnerstag 03 April 2008 15:19:04 schrieb Heiko Schlittermann:
Ich *glaube*, es ist nirgens definiert, daß in argv[0] etwas sinnvolles steht, es bleibt ganz dem Aufrufer überlassen, dort was relevantes reinzutun.
Exakt. execl("/usr/bin/schnüffelprog", "kdeinit")
Und für die Änderung zur Laufzeit: man prctl
*hm* Nur mal rein interessehalber... Ich kann mich nicht recht entsinnen, aber ich dachte, irgendwann vor langer Zeit (mein Informatikstudium liegt auch schon ein paar Jahre zurück) hat das eine Zuweisung an argv[0] schon getan. Jetzt ist das aber wohl nicht mehr so:
/tmp> cat test.c #include <stdio.h> #include <unistd.h> int main(int argc, char **argv) { printf("%s\n",argv[0]); argv[0] = "hello world"; printf("%s\n",argv[0]); sleep(100); return 0; } /tmp> gcc -o test test.c /tmp> ./test ./test hello world
Aber: ps sieht trotzdem noch ein "./test". Wurde das irgendwann mal geändert im Lauf der Geschichte? Oder habe ich das was falsch in Erinnerung?
Josef
Ciao, Thomas