Provided by: manpages-it_4.19.0-7_all bug

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).

STANDARDS

       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> 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⟩.