vedi \ref{sec:file_chroot}) è la stessa per tutti i processi ed equivale alla
radice dell'albero (\ref{sec:file_gen}): in questo caso si parla di un
pathname \textsl{assoluto}. Altrimenti la ricerca parte dalla directory
-corrente (su cui pure torneremo più avanti in \ref{sec:file_cwd}) ed il
-pathname è detto \textsl{relativo}.
+corrente (su cui pure torneremo più avanti in \ref{sec:file_dir_working}) ed
+il pathname è detto \textsl{relativo}.
I componenti \texttt{.} e \texttt{..} hanno un significato speciale e vengono
inseriti in ogni directory, il primo fa riferimento alla directory corrente e
corrente. I prototipi di queste funzioni sono dichiarati in \texttt{unistd.h}.
\begin{itemize}
-\item \texttt{char * getcwd (char * buffer, size_t size)}
+\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
+ specificare un puntatore nullo come \textit{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
Di questa funzione esiste una versione \texttt{char * getwd(char * buffer)}
fatta per compatibilità all'indietro con BSD, che non consente di specificare
la dimensione del buffer; esso deve essere allocato in precedenza ed avere una
-dimensione superiore a \texttt{PATH_MAX} (di solito 256 byters, vedi
+dimensione superiore a \texttt{PATH\_MAX} (di solito 256 byters, vedi
\ref{sec:xxxx_limits}; il problema è che in linux non esiste una dimensione
superiore per un pathname, per cui non è detto che il buffer sia sufficiente a
contenere il nome del file, e questa è la ragione principale per cui questa
funzione è deprecata.
-Una seconda funzione simile è \texttt{char * get_current_dir_name(void)} che è
-sostanzialmente equivalente ad una \texttt{getcwd(NULL, 0)}, con la sola
+Una seconda funzione simile è \texttt{char * get\_current\_dir\_name(void)}
+che è sostanzialmente equivalente ad una \texttt{getcwd(NULL, 0)}, con la sola
differenza che essa ritorna il valore della variabile di ambiente
\texttt{PWD}, che essendo costruita dalla shell può contenere anche dei
riferimenti simbolici.
programma deve includere il file \texttt{sys/stat.h}.
\begin{itemize}
-\item \texttt{char * mkdir (const char * dirname, mode_t mode)}
+\item \texttt{char * mkdir (const char * dirname, mode\_t mode)}
Questa funzione crea una nuova directory vuota con il nome indicato da
\texttt{dirname}, assegnandole i permessi indicati da \texttt{mode}. Il nome
parlavamo in \ref{sec:file_vfs}) in una opportuna struttura \texttt{struct
dirent}.
+\subsection{I link simbolici e i link diretti}
+\label{sec:file_link}
-
+Come si è già accennato nell'introduzione in un sistema unix quello che
+caratterizza un file su disco è il suo \textit{inode}, è quindi