%% intro.tex
%%
-%% Copyright (C) 2000-2012 Simone Piccardi. Permission is granted to
+%% Copyright (C) 2000-2015 Simone Piccardi. Permission is granted to
%% copy, distribute and/or modify this document under the terms of the GNU Free
%% Documentation License, Version 1.1 or any later version published by the
%% Free Software Foundation; with the Invariant Sections being "Un preambolo",
Entrambe le interfacce possono essere usate per l'accesso ai file come agli
altri oggetti del VFS, ma per poter accedere alle operazioni di controllo
-(descritte in sez.~\ref{sec:file_fcntl} e sez.~\ref{sec:file_ioctl}) su un
-qualunque tipo di oggetto del VFS occorre usare l'interfaccia standard di Unix
-con i file descriptor. Allo stesso modo devono essere usati i file descriptor
-se si vuole ricorrere a modalità speciali di I/O come il
-\itindex{file~locking} \textit{file locking} o l'I/O non-bloccante (vedi
+(descritte in sez.~\ref{sec:file_fcntl_ioctl}) su un qualunque tipo di oggetto
+del VFS occorre usare l'interfaccia standard di Unix con i file
+descriptor. Allo stesso modo devono essere usati i file descriptor se si vuole
+ricorrere a modalità speciali di I/O come il \itindex{file~locking}
+\textit{file locking} o l'I/O non-bloccante (vedi
cap.~\ref{cha:file_advanced}).
Gli \textit{stream} forniscono un'interfaccia di alto livello costruita sopra
\textbf{Standard} & \textbf{IEEE} & \textbf{ISO} & \textbf{Contenuto} \\
\hline
\hline
- POSIX.1 & 1003.1 & 9945-1& Interfacce di base \\
- POSIX.1a& 1003.1a& 9945-1& Estensioni a POSIX.1 \\
- POSIX.2 & 1003.2 & 9945-2& Comandi \\
- POSIX.3 & 2003 &TR13210& Metodi di test \\
- POSIX.4 & 1003.1b & --- & Estensioni real-time \\
- POSIX.4a& 1003.1c & --- & \itindex{thread} Thread \\
- POSIX.4b& 1003.1d &9945-1& Ulteriori estensioni real-time \\
- POSIX.5 & 1003.5 & 14519& Interfaccia per il linguaggio ADA \\
- POSIX.6 & 1003.2c,1e& 9945-2& Sicurezza \\
- POSIX.8 & 1003.1f& 9945-1& Accesso ai file via rete \\
- POSIX.9 & 1003.9 & --- & Interfaccia per il Fortran-77 \\
- POSIX.12& 1003.1g& 9945-1& Socket \\
+ POSIX.1 & 1003.1 & 9945-1& Interfacce di base. \\
+ POSIX.1a& 1003.1a& 9945-1& Estensioni a POSIX.1. \\
+ POSIX.2 & 1003.2 & 9945-2& Comandi. \\
+ POSIX.3 & 2003 &TR13210& Metodi di test. \\
+ POSIX.4 & 1003.1b & --- & Estensioni real-time. \\
+ POSIX.4a& 1003.1c & --- & \itindex{thread} Thread. \\
+ POSIX.4b& 1003.1d &9945-1& Ulteriori estensioni real-time. \\
+ POSIX.5 & 1003.5 & 14519& Interfaccia per il linguaggio ADA. \\
+ POSIX.6 & 1003.2c,1e& 9945-2& Sicurezza. \\
+ POSIX.8 & 1003.1f& 9945-1& Accesso ai file via rete. \\
+ POSIX.9 & 1003.9 & --- & Interfaccia per il Fortran-77. \\
+ POSIX.12& 1003.1g& 9945-1& Socket. \\
\hline
\end{tabular}
\caption{Elenco dei vari standard POSIX e relative denominazioni.}
\macro{\_GNU\_SOURCE}) è stata a sua volta attivata, nel qual caso queste
hanno la precedenza. Se però si definisce \macro{\_BSD\_SOURCE} dopo aver
definito una di queste macro, l'effetto sarà quello di dare la precedenza
- alle funzioni in forma BSD.
+ alle funzioni in forma BSD. Questa macro è stata deprecata a partire dalle
+ \acr{glibc} 2.20, essendo ricompresa in \macro{\_DEFAULT\_SOURCE} che è
+ definita di default.
\item[\macro{\_SVID\_SOURCE}] definendo questa macro si rendono disponibili le
funzionalità derivate da SVID. Esse comprendono anche quelle definite negli
standard ISO C, POSIX.1, POSIX.2, e X/Open (XPG$n$) illustrati in
- precedenza.
+ precedenza. Questa macro è stata deprecata a partire dalle \acr{glibc} 2.20,
+ essendo ricompresa in \macro{\_DEFAULT\_SOURCE} che è definita di default.
+
+\item[\macro{\_DEFAULT\_SOURCE}] questa macro abilita le definizioni
+ considerate il \textit{default}, comprese quelle richieste dalla standard
+ POSIX.1-2008, ed è sostanzialente equivalente a \macro{\_SVID\_SOURCE}
+ \macro{\_BSD\_SOURCE}] e \macro{\_POSIX\_C\_SOURCE}. Essendo predefinita non
+ è necessario usarla a meno di non aver richiesto delle definizioni più
+ restrittive sia con altre macro che con i flag del compilatore, nel qual
+ caso abilita le funzioni che altrimenti sarebbero disabilitate. Questa macro
+ è stata introdotta a partire dalle \acr{glibc} 2.19 e consente di deprecare
+ \macro{\_SVID\_SOURCE} e \macro{\_BSD\_SOURCE}].
\item[\macro{\_XOPEN\_SOURCE}] definendo questa macro si rendono disponibili
le funzionalità descritte nella \textit{X/Open Portability Guide}. Anche
viene tuttora riconosciuta come equivalente di \macro{\_ISOC99\_SOURCE} per
compatibilità.
+\item[\macro{\_ISOC11\_SOURCE}] definendo questa macro si rendono disponibili
+ le funzionalità previste per la revisione delle librerie standard del C
+ introdotte con lo standard ISO C11, e abilita anche quelle previste dagli
+ standard C99 e C95. La macro è definita a partire dalla versione 2.16 della
+ \acr{glibc}.
+
\item[\macro{\_GNU\_SOURCE}] definendo questa macro si rendono disponibili
tutte le funzionalità disponibili nei vari standard oltre a varie estensioni
specifiche presenti solo nella \acr{glibc} ed in Linux. Gli standard coperti
presente negli standard con i file di grandi dimensioni, ed in particolare
definire le due funzioni \func{fseeko} e \func{ftello} che al contrario
delle corrispettive \func{fseek} e \func{ftell} usano il tipo di dato
- specifico \type{off\_t} (vedi sez.~\ref{sec:file_fseek}).
+ specifico \type{off\_t} (vedi sez.~\ref{sec:file_io}).
\item[\macro{\_LARGEFILE64\_SOURCE}] definendo questa macro si rendono
disponibili le funzioni di una interfaccia alternativa al supporto di valori