On Thu, 01 May 2003 at 11:59 (+0200), Thorsten Haude wrote:
* Bernhard Walle
[2003-05-01 10:43]: 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.
Die Manpages von OpenBSD und FreeBSD sind da klarer, da ist von einer internen statischen Struktur die Rede. Ein kurzer Blick in die libc scheint das zu bestätigen.
Unter Linux steht nur ERRORS ENOMEM Insufficient memory to allocate passwd structure. und das hat sich fuer mich so angehoert als ob der Speicher dynamisch mit malloc() angefordert wurde. Aber in der Info-Page zur libc steht (hab jetzt eben nachgeschaut): - Function: struct passwd * getpwuid (uid_t UID) This function returns a pointer to a statically-allocated structure containing information about the user whose user ID is UID. This structure may be overwritten on subsequent calls to `getpwuid'. Das ist dann eindeutig. Gruss, Bernhard -- _________ http://www.bwalle.de _________________________________________________ "Wenn zwei Menschen immer dasselbe denken, ist einer von ihnen überflüssig." -- Winston Churchill