November 28, 1993 CUSERID 3

### NAME

cuserid - get user name

### LIBRARY

Compatibility Library (libcompat, -lcompat)

### SYNOPSIS

```char``*` cuserid(```char *buf`)

### DESCRIPTION

This interface is available from the compatibility library, libcompat and has been obsoleted by getlogin(2).

The cuserid(``) function returns a character string representation of the user name associated with the effective user ID of the calling process.

If ```buf` is not the ```NULL` pointer, the user name is copied into the memory referenced by ```buf`. The argument ```buf` is assumed to point to an array at least ```L_cuserid` (as defined in the include file <```stdio.h`>) bytes long. Otherwise, the user name is copied to a static buffer.

### RETURN VALUES

If ```buf` is not the ```NULL` pointer, ```buf` is returned; otherwise the address of the static buffer is returned.

If the user name could not be determined, if ```buf` is not the ```NULL` pointer, the null character `\0' will be stored at ```*buf`; otherwise the ```NULL` pointer is returned.

### SEE ALSO

getlogin(2), getpwent(3)

### STANDARDS

The cuserid(``) function conforms to IEEE Std 1003.1-1988 (``POSIX.1'') .

### BUGS

Due to irreconcilable differences in historic implementations, cuserid(``) was removed from the ISO/IEC 9945-1:1990 (``POSIX.1'') standard. This implementation exists purely for compatibility with existing programs. New programs should use one of the following three alternatives to obtain the user name:

1. getlogin(``) to return the user's login name.
2. getpwuid(geteuid(``)) to return the user name associated with the calling process' effective user ID.
3. getpwuid(getuid(``)) to return the user name associated with the calling process' real user ID.