intro

INTRO(2)               Manuale del programmatore di Linux               INTRO(2)



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, nel punto in cui 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)

COLOPHON
       Questa pagina fa parte del rilascio 5.13 del progetto Linux man-pages.
       Una descrizione del progetto, le istruzioni per la segnalazione degli
       errori, e l'ultima versione di questa pagina si trovano su
       https://www.kernel.org/doc/man-pages/.


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> e Marco Curreli <marcocurreli@tiscali.it>

       Questa traduzione è documentazione libera; leggere la GNU General Public
       License Versione 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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                            27 agosto 2021                         INTRO(2)