Hallo,
Am Tue, 02 Mar 2004, Dieter Kluenter schrieb:
Man mag mich korrigieren, wenn ich hier eine falsche Information
gebe,
Tust du.
aber wenn ich mich recht erinnere, hat die glibc für die Funktion
getlogin bzw. cuserid ein Array von einem Byte vorgesehen.
Das waere dann aber nur ein Zeichen.
Schon die glibc-2.1.3 definiert:
sysdeps/unix/getlogin.c:26:#include
sysdeps/unix/getlogin.c:37: static char name[UT_NAMESIZE + 1];
include/utmp.h:2:#include
login/utmp.h:30:#include
sysdeps/generic/bits/utmp.h:27:#define UT_NAMESIZE 8
sysdeps/gnu/bits/utmp.h:29:#define UT_NAMESIZE 32
Ich glaube nicht, dass die glibc bei SuSE ohne die GNU-Erweiterung
kompiliert wurde. Zumindest die glibc-2.1.3 der SuSE 6.4 ist es nicht:
/usr/include/bits/utmp.h:29:#define UT_NAMESIZE 32
==== getusernamelen.c ====
#include
#include
int main(void) {
struct utmp u;
printf("max. username length: %u\n", sizeof(u.ut_user));
return 0;
}
====
$ gcc -o getusernamelen getusernamelen.c && ./getusernamelen
max. username length: 32
-dnh
--
If you haven't got time to RTFM, you haven't got time to whine on this
mailing list.