Hallo, leider habe ich die Ursprungsmail nicht bekommen, deshalb antworte ich jetzt mal auf diese: On Thu, 01 May 2003 at 03:00 (+0200), Ralf Corsepius wrote:
Am Don, 2003-05-01 um 00.21 schrieb Thorsten Haude:
gibt es in C/POSIX einen Weg, die Loginshell des aktuellen Users herauszufinden?
Mir ist kein direkter Weg dazu bekannt.
Auf 'getenv("SHELL")' will ich nur zurückgreifen, wenn es nicht anders geht, schon weil ich nicht sicher bin, ob alle Shells das setzen.
Finde ich auch nicht besonders toll. Was spricht gegen sowas wie /* include stdio.h, unistd.h, sys/types.h, stdlib.h, pwd.h */ struct passwd *pw_struct; pw_struct = getpwuid( getuid() ); printf("Die Login-Shell heisst: %s\n", pw_struct->pw_shell); In den Manpages steht `conforming to POSIX' drin. Fragt sich bloss ob man den Speicher wieder freigeben muss, beim Aufruf von free bekomme ich einen Speicherzugriffsfehler. Auf der anderen Seite steht in man getpwuid nicht drin dass der Pointer auf was statisches zeigen wuerde. Wenn nicht dann wuerde schon getpwuid( getuid() )->pw_shell ausreichen. Gruss, Bernhard -- _________ http://www.bwalle.de _________________________________________________ Die Geschichte lehrt die Menschen, dass die Geschichte die Menschen nichts lehrt. -- Mahatma Ghandi