Provided by: manpages-it_4.28.0-2_all 

NOME
intro - Introduzione alle chiamate di sistema
DESCRIZIONE
La sezione 2 del manuale descrive le chiamate di sistema di Linux. Una chiamata di sistema è un punto
d'ingresso nel kernel Linux. Di solito le chiamate di sistema non vengono invocate direttamente: invece,
la maggior parte delle chiamate di sistema hanno corrispondenti funzioni-contenitore nella libreria C che
compiono i passi richiesti (per esempio, passare in modalità kernel) per invocare la chiamata di sistema.
Così, effettuare una chiamata di sistema assomiglia ad invocare una normale libreria di sistema.
In molti casi, la funzione contenitore della libreria C non fa niente di più che:
• copiare argomenti e il numero che individua la chiamata di sistema nei registri dove il kernel si
aspetta che siano;
• passare in modalità kernel, a quel punto il kernel fa il lavoro reale della chiamata di sistema; e
• impostare errno se la chiamata di sistema restituisce un numero di errore quando il kernel fa tornare
la CPU alla modalità utente (user mode).
Comunque, in alcuni casi, una funzione contenitore può fare molto di più, per esempio, può effettuare
alcune pre-elaborazioni degli argomenti prima di passare in modalità kernel, o può effettuare
post-elaborazioni di valori restituiti attraverso la chiamata di sistema. Se del caso, le pagine di
manuale della Sezione 2 normalmente cercano di far rilevare i dettagli sia dell'interfaccia API della
libreria C (di solito GNU) che della chiamata di sistema diretta. Più comunemente, la DESCRIZIONE
principale verterà sull'interfaccia della libreria C, e le differenze per la chiamata di sistema verranno
trattare nella sezione NOTE.
Per una lista delle chiamate di sistema di Linux vedere syscalls(2).
VALORE RESTITUITO
In caso di errore la maggior parte delle chiamate di sistema restituisce un numero di errore negativo
(cioè il valore opposto di una delle costanti definite in errno(3)). Il contenitore (wrapper) della
libreria C nasconde questo dettaglio al chiamante: quando una chiamata di sistema restituisce un valore
negativo, il contenitore copia il valore assoluto nella variabile errno, e restituisce -1 come valore
restituito dal contenitore.
Il valore restituito da una chiamata di sistema eseguita con successo dipende dalla chiamata stessa.
Molte chiamate di sistema restituiscono 0, ma alcune possono restituire valori diversi da zero in caso di
successo. I dettagli sono descritti nelle singole pagine di manuale.
In alcuni casi il programmatore deve definire una macro con funzionalità di test per ottenere la
dichiarazione di una chiamata di sistema dal file di intestazione specificato nella sezione SINTASSI
della pagina di manuale. (Ove richieste, queste macro con funzionalità di test devono essere definite
prima di includere un qualsiasi file di intestazione). In questi casi la macro richiesta è descritta
nella pagina di manuale. Per maggiori informazioni sulle macro di test si veda feature_test_macros(7).
CONFORME A
Alcuni termini e abbreviazioni sono usati per indicare varianti UNIX e standard ai quali si conformano
le chiamate in questa sezione. See standards(7).
NOTE
Chiamata diretta
In molti casi, non è necessario invocare direttamente una chiamata di sistema, ma alcune volte la
libreria C Standard non implementa una funzione che soddisfi le proprie necessità. In questo caso il
programmatore deve invocare manualmente la chiamata di sistema usando syscall(2). Storicamente era
possibile farlo anche usando una delle macro di _syscall descritte in _syscall(2).
Autori e condizioni di copyright
Si vedano le intestazioni delle pagine di manuale per l'autore(i) e le condizioni di copyright. Si noti
che questi possono differire da pagina a pagina!
VEDERE ANCHE
_syscall(2), syscall(2), syscalls(2), errno(3), intro(3), capabilities(7), credentials(7),
feature_test_macros(7), mq_overview(7), path_resolution(7), pipe(7), pty(7), sem_overview(7),
shm_overview(7), signal(7), socket(7), standards(7), symlink(7), system_data_types(7), sysvipc(7),
time(7)
TRADUZIONE
La traduzione italiana di questa pagina di manuale è stata creata da Giovanni Bortolozzo
<borto@dei.unipd.it>, Alessandro Rubini <rubini@linux.it>, Giulio Daprelà <giulio@pluto.it>, Elisabetta
Galli <lab@kkk.it>, Marco Curreli <marcocurreli@tiscali.it> e Giuseppe Sacco <eppesuig@debian.org>
Questa traduzione è documentazione libera; leggere la GNU General Public License Versione 3 o successiva
per le condizioni di copyright. Non ci assumiamo alcuna responsabilità.
Per segnalare errori nella traduzione di questa pagina di manuale inviare un messaggio a pluto-
ildp@lists.pluto.it.
Linux man-pages 6.9.1 2 maggio 2024 intro(2)