GETUSERSHELL(3C) Standard C Library Functions GETUSERSHELL(3C)


getusershell, setusershell, endusershell - get legal user shells


#include <unistd.h>

char *getusershell(void);

void setusershell(void);

void endusershell(void);


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
does not exist, the following locations of the standard system shells are
used in its place:

/bin/bash /bin/csh
/bin/jsh /bin/ksh
/bin/ksh93 /bin/pfcsh
/bin/pfksh /bin/pfsh
/bin/sh /bin/tcsh
/bin/zsh /sbin/jsh
/sbin/pfsh /sbin/sh
/usr/bin/bash /usr/bin/csh
/usr/bin/jsh /usr/bin/ksh
/usr/bin/ksh93 /usr/bin/pfcsh
/usr/bin/pfksh /usr/bin/pfsh
/usr/bin/sh /usr/bin/tcsh
/usr/bin/zsh /usr/sfw/bin/zsh

The getusershell() function opens the file /etc/shells, if it exists, and
returns the next entry in the list of shells.

The setusershell() function rewinds the file or the list.

The endusershell() function closes the file, frees any memory used by
getusershell() and setusershell(), and rewinds the file /etc/shells.


The getusershell() function returns a null pointer on EOF.


All information is contained in memory that may be freed with a call to
endusershell(), so it must be copied if it is to be saved.


Restricted shells should not be listed in /etc/shells.

November 1, 2007 GETUSERSHELL(3C)