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 wrapper nella
libreria C che compiono i passi richiesti (per esempio, bloccare in
modalità kernel) per invocare la chiamata di sistema. Così,
effettuare una chiamata di sistema assomiglia ad invocare una normale libreria
di sistema.
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 wrapper della libreria C nasconde questo
dettaglio al chiamante: quando una chiamata di sistema restituisce un valore
negativo, il wrapper copia il valore assoluto nella variabile
errno , e
restituisce -1 come valore restituito dal wrapper.
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 funzione di test per
ottenere la dichiarazione di una chiamata di sistema dal file di intestazione
specificato nella sezione SINTASSI della pagina di manuale. In questi casi la
macro richiesta è descritta nella pagina di manuale. Per maggiori
informazioni sulle macro con funzione di test si veda
feature_test_macros(7).
Alcuni termini e abbreviazioni vengono usati per indicare varianti di Unix e
standard ai quali le chiamate descritte in questa sezione si adeguano. Vedere
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 termini di copyright¶
Si veda l'intestazione del sorgente della pagina di manuale per l'autore e per
le condizioni di copyright. Si noti che possono essere diversi da pagina a
pagina.
VEDERE ANCHE¶
_syscall(2),
syscall(2),
errno(3),
feature_test_macros(7),
standards(7)