X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=blobdiff_plain;f=session.tex;h=5c62d918010e988c68ed98eaa18de967cd0eb265;hb=886e1105f5b014b7984a8416d6a8101259af16d6;hp=da7aff4fb545c4ef7a4a447cc23dbfdd6216cb68;hpb=e7010c3fbd41a2de44c7b513c5de6e2c6d7ab4b4;p=gapil.git diff --git a/session.tex b/session.tex index da7aff4..5c62d91 100644 --- a/session.tex +++ b/session.tex @@ -167,8 +167,8 @@ funzione \funcd{getsid}, che per caso di successo, e -1 in caso di errore, nel qual caso \var{errno} assumerà i valori: \begin{errlist} - \item[\errcode{ESRCH}] Il processo selezionato non esiste. - \item[\errcode{EPERM}] In alcune implementazioni viene restituito quando il + \item[\errcode{ESRCH}] il processo selezionato non esiste. + \item[\errcode{EPERM}] in alcune implementazioni viene restituito quando il processo selezionato non fa parte della stessa sessione del processo corrente. \end{errlist} @@ -211,10 +211,10 @@ ad un altro con la funzione \funcd{setpgid}, il cui prototipo \bodydesc{La funzione ritorna il valore del nuovo \textit{process group}, e -1 in caso di errore, nel qual caso \var{errno} assumerà i valori: \begin{errlist} - \item[\errcode{ESRCH}] Il processo selezionato non esiste. - \item[\errcode{EPERM}] Il cambiamento non è consentito. - \item[\errcode{EACCES}] Il processo ha già eseguito una \func{exec}. - \item[\errcode{EINVAL}] Il valore di \param{pgid} è negativo. + \item[\errcode{ESRCH}] il processo selezionato non esiste. + \item[\errcode{EPERM}] il cambiamento non è consentito. + \item[\errcode{EACCES}] il processo ha già eseguito una \func{exec}. + \item[\errcode{EINVAL}] il valore di \param{pgid} è negativo. \end{errlist} } \end{prototype} @@ -298,7 +298,7 @@ dal quale ricevono gli eventuali segnali da tastiera. A tale scopo lo standard POSIX.1 prevede che ad ogni sessione possa essere associato un terminale di controllo; in Linux questo viene realizzato mantenendo fra gli attributi di ciascun processo anche qual'è il suo terminale -di controllo.\footnote{Lo standard POSIX.1 non specifica nulla riguardo +di controllo.\footnote{lo standard POSIX.1 non specifica nulla riguardo l'implementazione; in Linux anch'esso viene mantenuto nella solita struttura \struct{task\_struct}, nel campo \var{tty}.} In generale ogni processo eredita dal padre, insieme al \acr{pgid} e al \acr{sid} anche il terminale di @@ -338,10 +338,10 @@ funzione \funcd{tcsetpgrp}, il cui prototipo \bodydesc{La funzione restituisce 0 in caso di successo, e -1 in caso di errore, nel qual caso \var{errno} assumerà i valori: \begin{errlist} - \item[\errcode{ENOTTY}] Il file \param{fd} non corrisponde al terminale di + \item[\errcode{ENOTTY}] il file \param{fd} non corrisponde al terminale di controllo del processo chiamante. - \item[\errcode{ENOSYS}] Il sistema non supporta il job control. - \item[\errcode{EPERM}] Il \textit{process group} specificato non è nella + \item[\errcode{ENOSYS}] il sistema non supporta il job control. + \item[\errcode{EPERM}] il \textit{process group} specificato non è nella stessa sessione del processo chiamante. \end{errlist} ed inoltre \errval{EBADF} ed \errval{EINVAL}. @@ -376,7 +376,7 @@ ad un terminale con la funzione \funcd{tcgetpgrp}, il cui prototipo gruppo di \textit{foreground}, e -1 in caso di errore, nel qual caso \var{errno} assumerà i valori: \begin{errlist} - \item[\errcode{ENOTTY}] Non c'è un terminale di controllo o \param{fd} non + \item[\errcode{ENOTTY}] non c'è un terminale di controllo o \param{fd} non corrisponde al terminale di controllo del processo chiamante. \end{errlist} ed inoltre \errval{EBADF} ed \errval{ENOSYS}. @@ -601,9 +601,10 @@ niente a che fare con la gestione diretta dei comandi dell'utente. Questi programmi, che devono essere eseguiti in modalità non interattiva e senza nessun intervento dell'utente, sono normalmente chiamati \textsl{demoni}, (o \textit{daemons}), nome ispirato dagli omonimi spiritelli -che svolgevano compiti vari, di cui parlava Socrate (che sosteneva di averne -uno al suo servizio).\footnote{NdT. ricontrollare, i miei ricordi di filosofia - sono piuttosto datati.} +della mitologia greca che svolgevano compiti che gli dei trovavano noiosi, di +cui parla anche Socrate (che sosteneva di averne uno al suo servizio). + +%TODO ricontrollare, i miei ricordi di filosofia sono piuttosto datati. Se però si lancia un programma demone dalla riga di comando in un sistema che supporta, come Linux, il \textit{job control} esso verrà comunque associato ad @@ -1582,7 +1583,7 @@ immagazzinate le impostazioni. Le funzioni sono \funcd{tcgetattr} e \bodydesc{Entrambe le funzioni restituiscono 0 in caso di successo e -1 in caso di errore, nel qual caso \var{errno} assumerà i valori: \begin{errlist} - \item[\errcode{EINTR}] La funzione è stata interrotta. + \item[\errcode{EINTR}] la funzione è stata interrotta. \end{errlist} ed inoltre \errval{EBADF}, \errval{ENOTTY} ed \errval{EINVAL}. } @@ -1784,7 +1785,6 @@ i terminali hanno un insieme di funzionalit di code di ingresso ed uscita; in generale si fa riferimento ad esse con il nome di \textsl{discipline di linea}. - Lo standard POSIX prevede alcune funzioni che permettono di intervenire direttamente sulla gestione di quest'ultime e sull'interazione fra i dati in ingresso ed uscita e le relative code. In generale tutte queste funzioni @@ -1814,9 +1814,9 @@ La funzione invia un flusso di bit nulli (che genera una condizione di break) sul terminale associato a \param{fd}; un valore nullo di \param{duration} implica una durata del flusso fra 0.25 e 0.5 secondi, un valore diverso da zero implica una durata pari a \code{duration*T} dove \code{T} è un valore -compreso fra 0.25 e 0.5.\footnote{POSIX specifica il comportamento solo nel - caso si sia impostato un valore nullo per \param{duration}; il comportamento - negli altri casi può dipendere dalla implementazione.} +compreso fra 0.25 e 0.5.\footnote{lo standard POSIX specifica il comportamento + solo nel caso si sia impostato un valore nullo per \param{duration}; il + comportamento negli altri casi può dipendere dalla implementazione.} Le altre funzioni previste da POSIX servono a controllare il comportamento dell'interazione fra le code associate al terminale e l'utente; la prima è @@ -1922,6 +1922,7 @@ riportati in tab.~\ref{tab:sess_tcflow_action}. \end{table} + \subsection{Operare in \textsl{modo non canonico}} \label{sec:term_non_canonical} @@ -1990,14 +1991,18 @@ Da fare. \label{sec:sess_pty} Qui vanno spiegati i terminali virtuali, \file{/dev/pty} e compagnia. +% vedi man pts + -\subsection{La funzione \func{openpty}} +\subsection{Allocazione dei terminale virtuali} \label{sec:sess_openpty} Qui vanno le cose su \func{openpty} e compagnia. - % TODO le ioctl dei terminali +% TODO trattare \func{posix\_openpt} + + % LocalWords: kernel multitasking dell'I job control BSD POSIX shell sez group