{La funzione ritorna l'identificatore (un numero positivo) in caso di successo
e $-1$ per un errore, nel qual caso \var{errno} assumerà uno dei valori:
\begin{errlist}
{La funzione ritorna l'identificatore (un numero positivo) in caso di successo
e $-1$ per un errore, nel qual caso \var{errno} assumerà uno dei valori:
\begin{errlist}
\item[\errcode{EPERM}] il processo selezionato non fa parte della stessa
sessione del processo corrente (solo in alcune implementazioni).
\item[\errcode{EPERM}] il processo selezionato non fa parte della stessa
sessione del processo corrente (solo in alcune implementazioni).
\item[\errcode{EACCES}] il processo di cui si vuole cambiare il \ids{PGID}
ha già eseguito una \func{exec}.
\item[\errcode{EINVAL}] il valore di \param{pgid} è negativo.
\item[\errcode{EACCES}] il processo di cui si vuole cambiare il \ids{PGID}
ha già eseguito una \func{exec}.
\item[\errcode{EINVAL}] il valore di \param{pgid} è negativo.
{La funzione ritorna $0$ in caso di successo e $-1$ per un errore, nel qual
caso \var{errno} assumerà uno dei valori:
\begin{errlist}
{La funzione ritorna $0$ in caso di successo e $-1$ per un errore, nel qual
caso \var{errno} assumerà uno dei valori:
\begin{errlist}
\item[\errcode{ENOTTY}] il file \param{fd} non corrisponde al terminale di
controllo del processo chiamante.
\item[\errcode{ENOTTY}] il file \param{fd} non corrisponde al terminale di
controllo del processo chiamante.
\item[\errcode{EPERM}] il \textit{process group} specificato non è nella
stessa sessione del processo chiamante.
\end{errlist}
\item[\errcode{EPERM}] il \textit{process group} specificato non è nella
stessa sessione del processo chiamante.
\end{errlist}
\item[\errcode{EINVAL}] l'argomento \param{op} non ha un valore valido, o si
sono specificati valori non validi per gli altri argomenti quando questi
sono richiesti.
\item[\errcode{EINVAL}] l'argomento \param{op} non ha un valore valido, o si
sono specificati valori non validi per gli altri argomenti quando questi
sono richiesti.