people(2) - fetch a structure containing all ttys, whose owner behaves like a human
people(2) System Calls people(2)
NAME
people - fetch a structure containing all ttys, whose owner
behaves like a human
SYNOPSIS
int people (struct ppl_tty **ttys);
DESCRIPTION
The people function fetches a short description of every
tty, whose coupled process behaves as an actual human.
It returns a newly malloc'ed array with just enough elements
to contain all elements needed for this.
The struct ppl_tty is declared as:
struct ppl_tty {
char tty_path[MAX_PATH_LENGTH];
int is_erratic;
int uses_jobcontrol;
int is_amoron;
int is_aluser;
int has_aclue;
pid_t prgp_leader;
};
RETURN VALUES
On success people returns the number of elements in ttys ,
on failure it returns -1 and errno is set to an appropriate
value.
ERRORS
ENOENT There are no human-behavioured processes on the sys-
tem
EBUSY The kernel is busy and will not stand this silly
behaviour. Caution to call people again, from the
same process, as the kernel might kill it right
away.
ENODEV See ENOENT above.
EUSERS Too many of the people found were lusers. The cut-
off for this error is system dependent, but is usu-
ally about 3.
EXAMPLE
int
main (int argc, char **argv)
{
struct ppl_tty **ttys;
int rv,c;
rv=people(ttys);
if (rv!=-1) {
for (c=0;c<rv;c++)
if ((ttys[c].is_amoron)||(ttys[c].is_aluser)) {
kill(-(ttys[c].pgrp_leader),SIGKILL);
}
} else {
; /* Handle errors in a graceful way... */
}
}
AUTHOR
This man page was written by Ingvar Mattsson, as a contribu-
tion to the a.s.r man page collection.