Aggiunte quattro parole in cinque minuti di tempo libero
authorSimone Piccardi <piccardi@gnulinux.it>
Tue, 13 Mar 2001 18:48:14 +0000 (18:48 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Tue, 13 Mar 2001 18:48:14 +0000 (18:48 +0000)
files.tex
intro.tex
process.tex

index d116627122df87dacaae05ad5422c3f37809774c..badd9edfd3d4bf9cd051c1ee4f82c7ed33b5770c 100644 (file)
--- 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}
index 4b3619d3e2d584e73dead7745b99745a64222744..bc81fb739e9469394c43497c2e3af0bf4e3e51b7 100644 (file)
--- 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.
+
+
index 2f754b992438de42fdf9a6ad1eaabad7fa8105e2..09e67032993948e4907a973ea79df3e9ceb82f9d 100644 (file)
@@ -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}