X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=fileunix.tex;h=40d022815a8fcd909a6e729af3538ed765c63f81;hp=7eddb1400549971a7e2d32848549f874cf73ae96;hb=2e715e70ba0df8224ec1bf118ba34a73a21df5c5;hpb=a29d9eebcd859ca662351848cc856e69f50c3ece diff --git a/fileunix.tex b/fileunix.tex index 7eddb14..40d0228 100644 --- a/fileunix.tex +++ b/fileunix.tex @@ -562,16 +562,15 @@ allora ritorna immediatamente con un errore \macro{EAGAIN}\footnote{sotto BSD Linux, con le glibc, questa è sinonima di \macro{EAGAIN}.} che nel caso indica soltanto che occorrerà provare a ripetere la lettura. -La funzione \func{read} è una delle system call esistenti fin dagli abori di -Unix, ma nella seconda versione delle \textit{Single Unix +La funzione \func{read} è una delle system call fondamentali, esistenti fin +dagli albori di Unix, ma nella seconda versione delle \textit{Single Unix Specification}\footnote{questa funzione, e l'analoga \func{pwrite} sono state aggiunte nel kernel 2.1.60, il supporto nelle \acr{glibc}, compresa l'emulazione per i vecchi kernel che non hanno la system call, è stato aggiunto con la versione 2.1, in versioni precedenti sia del kernel che delle librerie la funzione non è disponibile.} (quello che viene chiamato normalmente Unix98, vedi \secref{sec:intro_opengroup}) è stata introdotta la -definizione di un'altra funzione di lettura, \func{pread}, il cui prototipo di -questa funzione è: +definizione di un'altra funzione di lettura, \func{pread}, il cui prototipo è: \begin{prototype}{unistd.h} {ssize\_t pread(int fd, void * buf, size\_t count, off\_t offset)} @@ -932,8 +931,9 @@ prototipo descriptor aperti. \end{errlist}} \end{prototype} -\noindent e qualora il file descriptor \param{newfd} sia già aperto esso -sarà chiuso e poi duplicato. +\noindent e qualora il file descriptor \param{newfd} sia già aperto (come +avviene ad esempio nel caso della duplicazione di uno dei file standard) esso +sarà prima chiuso e poi duplicato. La duplicazione dei file descriptor può essere effettuata anche usando la funzione di controllo dei file \func{fnctl} (che esamineremo in