Hallo,
Am Freitag 04 April 2008 10:10:30 schrieb Thomas Köhler:
*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:
Zumindest im C-Standard [0] ist Ändern von argv[] erlaubt, es steht aber nicht da ob es Auswirkungen haben soll. An dieser Stelle setzt dann auch die Betriebssystemspezifikation ein. Soweit ich weiß ist der POSIX-Standard aber nach wie vor nicht registrierungsfrei zu bekommen, da kann ich mich aber auch irren. Und da ich jetzt auch nicht in den Kernelsourcen wühlen will, denke ich mal, dass der Kernel argv[] und die sonstigen Prozessinformationen im PCB getrennt hält. Kurzum, da C es nicht definiert, ist es nicht portabel und man sollte sich darauf nicht verlassen, und prctl ist auch linuxspezifisch.
Josef
[0] http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf