GETUSERSHELL(3) | Library Functions Manual | GETUSERSHELL(3)

# NAME

`getusershell`, `setusershell`, `endusershell` — get legal user shells

# SYNOPSIS

`#include <unistd.h>`

char *
`getusershell`(void);

void
`setusershell`(void);

void
`endusershell`(void);

# DESCRIPTION

The `getusershell`() function returns a pointer to a legal user shell as defined by the system manager in the file /etc/shells. If /etc/shells is unreadable or does not exist, `getusershell`() behaves as if only /bin/sh, /bin/csh and /bin/ksh were listed in the file.

The `getusershell`() function reads the next line (opening the file if necessary); `setusershell`() rewinds the file; `endusershell`() closes it.

# FILES

/etc/shells

# DIAGNOSTICS

The routine `getusershell`() returns a null pointer on `EOF`.

# SEE ALSO

shells(5)

# HISTORY

The `getusershell`() function appeared in 4.3BSD.

# BUGS

The `getusershell`() function leaves its result in an internal static object and returns a pointer to that object. Subsequent calls to `getusershell`() will modify the same object.

June 5, 2013 | Debian