From a5463de13de901aad60d684c0563b080087c8702 Mon Sep 17 00:00:00 2001 From: Simone Piccardi Date: Tue, 13 Mar 2001 18:48:14 +0000 Subject: [PATCH] Aggiunte quattro parole in cinque minuti di tempo libero --- files.tex | 39 +++++++++++++++++++++++++++++++++++++-- intro.tex | 2 ++ process.tex | 2 +- 3 files changed, 40 insertions(+), 3 deletions(-) diff --git a/files.tex b/files.tex index d116627..badd9ed 100644 --- a/files.tex +++ b/files.tex @@ -413,6 +413,7 @@ che permettono di esaminare e modificare le directory, rinominare o cancellare i file, esaminare o settare i loro attributi. \subsection{La directory di lavoro} +\label{sec:file_dir_cvd} Come accennato ciascun processo è associato ad una directory nel filesystem che è chiamata directory corrente o directory di lavoro (\textit{current @@ -421,8 +422,42 @@ che Quando un utente effettua il login questa directory viene settata alla cosiddetta \textit{home directory} del suo account, il comando \texttt{cd} -della shell consente di cambiarla a piacere. La directory corrente inoltre -viene conservata nella creazione di un nuovo processo tramite la funzione fork (\ref{sec:proc_fork}) +della shell consente di cambiarla a piacere, spostandosi da una directory ad +un'altra. Siccome la directory corrente resta la stessa quando viene creato +un processo figlio, la directory corrente della shell diventa anche la +directory corrente di qualunque comando da essa lanciato. + +Le funzioni qui descritte servono esaminare e cambiare la directory di lavoro +corrente. I prototipi di queste funzioni sono dichiarati in +\texttt{unistd.h}. + +\begin{itemize} +\item \texttt{char * getcwd (char * buffer, size_t size)} + + Restituisce il filename completo della directory di lavoro corrente nella + stringa puntata da \texttt{buffer}, che deve essere precedentemente + allocata, per una dimensione massima di \texttt{size}. Si può anche + specificare un puntatore nullo come \texiti{buffer}, nel qual caso la + stringa sarà allocata automaticamente per una dimensione pari a + \texttt{size} qualora questa sia diversa da zero, o della lunghezza esatta + del pathname altrimenti. In questo caso si deve ricordare di disallocara la + stringa una volta cessato il suo utilizzo. + + La funzione restituisce il puntatore \texttt{buffer} se riesce, + \texttt{NULL} se fallisce, in quest'ultimo caso sono ritornate le seguenti + condizioni di errore: + + \begin{itemize} + \item \texttt{EINVAL} L'argomento \texttt{size} è zero e \texttt{buffer} non + è nullo. + \item \texttt{ERANGE} L'argomento \texttt{size} è più piccolo della + lunghezza del pathname. + \item \texttt{EACCES} Manca il permesso di lettura o di ricerca su uno dei + componenti del pathname (cioè su una delle directory superiori alla + corrente). + \end{itemize} +\end{itemize} + \section{L'input/output di basso livello} diff --git a/intro.tex b/intro.tex index 4b3619d..bc81fb7 100644 --- a/intro.tex +++ b/intro.tex @@ -198,3 +198,5 @@ Un utente speciale del sistema identifica l'amministratore del sistema, che deve essere in grado di fare qualunque operazione; pertanto per l'utente root i meccanismi di controllo descritti in precedenza sono disattivati. + + diff --git a/process.tex b/process.tex index 2f754b9..09e6703 100644 --- a/process.tex +++ b/process.tex @@ -94,7 +94,7 @@ possono essere ottenuti da un programma usando le funzioni: \begin{itemize} \item \texttt{pid\_t getpid(void)} restituisce il pid del processo corrente. - \item \texttt{pid\_t getpid(void)} restituisce il pid del padre del processo + \item \texttt{pid\_t getppid(void)} restituisce il pid del padre del processo corrente. \end{itemize} -- 2.30.2