%% session.tex
%%
-%% Copyright (C) 2000-2012 Simone Piccardi. Permission is granted to
+%% Copyright (C) 2000-2014 Simone Piccardi. Permission is granted to
%% copy, distribute and/or modify this document under the terms of the GNU Free
%% Documentation License, Version 1.1 or any later version published by the
%% Free Software Foundation; with the Invariant Sections being "Un preambolo",
{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{ESRCH}] il processo selezionato non esiste.
\item[\errcode{EPERM}] il processo selezionato non fa parte della stessa
sessione del processo corrente (solo in alcune implementazioni).
+ \item[\errcode{ESRCH}] il processo selezionato non esiste.
\end{errlist}
}
\end{funcproto}
successo e $-1$ per un errore, nel qual caso \var{errno} assumerà uno dei
valori:
\begin{errlist}
- \item[\errcode{ESRCH}] il processo selezionato non esiste.
- \item[\errcode{EPERM}] il cambiamento non è consentito.
\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{EPERM}] il cambiamento non è consentito.
+ \item[\errcode{ESRCH}] il processo selezionato non esiste.
\end{errlist}
}
\end{funcproto}
{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{ENOSYS}] il sistema non supporta il \textit{job control}.
\item[\errcode{ENOTTY}] il file \param{fd} non corrisponde al terminale di
controllo del processo chiamante.
- \item[\errcode{ENOSYS}] il sistema non supporta il \textit{job control}.
\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{ERESTARTSYS}] l'operazione è stata interrotta da un segnale.
- \item[\errcode{EPERM}] non si hanno i privilegi richiesti per l'operazione
- richiesta.
\item[\errcode{ENOSYS}] il supporto per \texttt{printk} non è stato compilato
nel kernel.
+ \item[\errcode{EPERM}] non si hanno i privilegi richiesti per l'operazione
+ richiesta.
+ \item[\errcode{ERESTARTSYS}] l'operazione è stata interrotta da un segnale.
\end{errlist}
}
\end{funcproto}
errore (\texttt{\small 9--10}), poi si provvede a impostare solo i bit
richiesti (possono essere più di uno) con un OR binario (\texttt{\small 12});
infine si scrive il nuovo valore modificato con \func{tcsetattr}
-(\texttt{\small 13}), notificando un eventuale errore (\texttt{\small 14-15})
+(\texttt{\small 13}), notificando un eventuale errore (\texttt{\small 14--15})
o uscendo normalmente.
\begin{figure}[!htbp]
Qui vanno le cose su \func{openpty} e compagnia.
% TODO le ioctl dei terminali (man tty_ioctl)
+% e http://www.net-security.org/article.php?id=83
% TODO trattare \func{posix\_openpt}
% TODO materiale generico sul layer TTY
% vedi http://www.linusakesson.net/programming/tty/index.php
-
% LocalWords: kernel multitasking job control BSD POSIX shell sez group
% LocalWords: foreground process bg fg waitpid WUNTRACED pgrp session sched
% LocalWords: struct pgid sid pid ps getpgid getpgrp unistd void errno int