008
09.01.2006, 21:44 Uhr
Pablo
Supertux (Operator)
|
Zitat von J-jayz-Z: |
Soweit ich die man page verstanden habe, holt es sich die Daten aus Dateien und erzeugt daraus eine Struktur, die die Daten aus der Datei holt und sie in der Variablen innerhalb der Struktur sichert. Ich mein ich will ja wissen, wer angemeldet ist, wenn ich ihm die Namen vorher geben muss der angemeldeten User, kann ich mir die Abfrage ja auch sparen, dann kenn ich die User ja schon ... Passiert das nicht innerhalb von utmp.h, das füllen der Struktur ?
|
du hast da ein C/C++ Programmierverständnis Problem.
Wenn du sowas machst:
C++: |
#include <utmp.h>
void foo() { struct utmp utmp; printf("%s\n", utmp.ut_user); /* bzw. cout << ... */ }
|
dann ist es klar, dass du Müll bekommst, warum?
utmp.h ist nur eine Header Datei, sie deklariert nur Strukturen und Funktionen, mehr nicht. Ein #include <utmp.h> sagt nur, dass du diese Strukturen und Funktionen verwenden willst.
struct utmp utmp; ist nur die Deklaration einer Variable names utmp vom Typ "stuct utmp". Die Variable ist uninitialisiert. Genauso wie wenn du int a; machst, dann hat a einen unbekannten Wert. Dasselbe ist es mit den Members eines structs.
Erst die Funktion getutent liest die Systemdatein, ermittelt welche benutzer eingeloggt sind und speichert ihre Information in einer Variablke von Typ "struct utmp".
Hastd du deinen Fehler gefunden? -- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth! Dieser Post wurde am 09.01.2006 um 21:44 Uhr von Pablo editiert. |