Provided by: manpages-es_1.55-10_all 

NOMBRE
getlogin, cuserid - obtiene nombre de usuario
SINOPSIS
#include <unistd.h>
char * getlogin ( void );
#include <stdio.h>
char * cuserid ( char *cadena );
DESCRIPCIÓN
getlogin devuelve un puntero a una cadena de caracteres que contiene el nombre del usuario que está en la
terminal controladora del proceso, o un puntero nulo si esta información no puede determinarse. La cadena
se reserva estáticamente y puede ser sobreescrita en subsecuentes llamadas a esta función o a cuserid.
cuserid devuelve un puntero a una cadena de caracteres que contiene un nombre de usuario asociado con el
UID efectivo del proceso. Si cadena no es un puntero nulo, debe ser un vector que pueda alojar al menos
L_cuserid caracteres; la cadena se coloca en este vector. De otro modo se devuelve un puntero a una
cadena en un área estática. Esta cadena se reserva estáticamente y puede ser sobreescrita en subsecuentes
llamadas a esta función o a getlogin.
La macro L_cuserid es una constante entera que indica cuán grande puede necesitar ser un vector que
almacene un nombre de usuario. Se declara en stdio.h.
Estas funciones permiten a su programa identificar positivamente al usuario que lo está ejecutando
(cuserid) o al que ha entrado en esta sesión (getlogin). (Que pueden diferir cuando están implicados
programas SUID).
Para la mayoría de los propósitos, es más útil emplear la variable de ambiente LOGNAME para saber quién
es el usuario. Esto es más flexible precisamente porque el usuario puede dar un valor arbitrario a
LOGNAME.
ERRORES
ENOMEM Memoria insuficiente para alojar la estructura passwd.
FICHEROS
/etc/passwd fichero de datos de cuentas de usuario
/var/run/utmp (traditionally /etc/utmp; some libc versions used /var/adm/utmp)
CONFORME A
POSIX.1. System V tiene una función cuserid que usa el UID real en vez del efectivo. La función cuserid
se incluyó en la versión de POSIX del año 1988, pero se quitó en la de 1990.
FALLOS
Desafortunadamente, es a meundo bastante fácil el liar a getlogin(). A veces no funciona en absoluto,
porque algún programa estropeó el fichero utmp. Frecuentemente, sólo da los primeros 8 caracteres del
nombre de entrada. El usuario que esté actualmente en la tty controladora de nuestro programa no tiene
por qué ser el que lo hubo ejecutado. Evite getlogin() para propósitos relacionados con la seguridad.
Nadie sabe con precisión qué es lo que hace cuserid(); evítelo en programas transportables; evítelo de
todas formas siempre: en su lugar emplee getpwuid(getwuid()), si eso es lo que pretende. NO UTILICE
cuserid().
VÉASE TAMBIÉN
geteuid(2), getuid(2)
Linux 1.2.13 3 septiembre 1995 GETLOGIN(3)