ein Kapitel zurück                                           ein Kapitel weiter

Wollen sie zum Beipiel ein Programm schreiben und in einer Log-Datei schreiben welcher User gerade auf den Prozeß zugreift, könnten sie die zum Beispiel in der Konsole mit........

echo $LOGNAME  

...abfragen. Aus dem Kapitel "Environment" wissen sie aber das uns Linux nur ein Environment zur Verfügung stellt. Geben wir jetzt zum Beispiel ein....

export LOGNAME=guru  

...jetzt fragen wir den Namen nochmals ab mit echo $LOGNAME ab und nun steht hier guru.

Also ist hiermit nicht Garantiert das wir so den echten Loginnamen erhalten. Für diese Fall haben wir die Funktion......

#include <unistd.h>

char *getlogin(void)  

Im Fehlerfall liefert diese Funktion NULL zurück. Folgendermaßen können sie diese Funktion verwenden........

/*Download:gelogin.c*/
#include <stdio.h> #include <unistd.h> int main(int argc, char **argv) { char *login = malloc(strlen(getlogin())); login[0]=0; strcpy(login, getlogin()); printf("Momentan benutzt %s den Prozeß %d\n",login,getpid()); return 0; }

Ein häufiger Fehler warum NULL zurückgegeben wird, ist das dem Prozeß oftmals kein Terminal zugeordnet werden kann. Beispielsweise bei einem Dämonprozeß. Verwenden sie für dieses Programm ein echtes Terminal.

ein Kapitel zurück          nach oben           ein Kapitel weiter


© 2001,2002 Jürgen Wolf