BEZEICHNUNG¶
Intro - Einführung in die Systemaufrufe
BESCHREIBUNG¶
Abschnitt 2 des Handbuches beschreibt die Linux-Systemaufrufe. Ein Systemaufruf
ist ein Eintrittspunkt in den Linux-Kernel. Normalerweise werden Systemaufrufe
nicht direkt durchgeführt; stattdessen haben die meisten Systemaufrufe
passende Wrapper-Funktionen in der C-Bibliothek, welche die für einen
Systemaufruf nötigen Schritte ausführen (z. B. Umschalten in den
Kernelmodus). Daher sehen Systemaufrufe genauso wie normale
Bibliotheksfunktionen aus.
In many cases, the C library wrapper function does nothing more than:
- *
- copying arguments and the unique system call number to the registers where
the kernel expects them;
- *
- trapping to kernel mode, at which point the kernel does the real work of
the system call; and
- *
- setting errno if the system call returns an error number when the
kernel returns the CPU to user mode.
However, in a few cases, a wrapper function may do rather more than this, for
example, performing some preprocessing of the arguments of arguments before
trapping to kernel mode, or postprocessing of values returned by the system
call. Where this is the case, the manual pages in Section 2 generally try to
note the details of both the (usually GNU) C library API interface and the raw
system call. Most commonly, the main DESCRIPTION will focus on the C library
interface, and differences for the system call are covered in the NOTES
section.
Eine Liste der Linux-Systemaufrufe finden Sie unter
syscalls(2).
RÜCKGABEWERT¶
Bei Fehlern geben die meisten Systemaufrufe eine negative Zahl zurück
(den negativen Wert einer der in
errno(3) beschriebenen Konstanten).
Der Wrapper der C-Bibliothek versteckt dieses Detail vor dem Aufrufenden: Wenn
ein Systemaufruf eine negative Zahl ergibt, kopiert der Wrapper den
Absolutwert in die Variable
errno und gibt als Rückgabewert -1
aus.
Der Wert, der von einem erfolgreichen Systemaufruf ausgegeben wird, hängt
vom Aufruf ab. Viele Systemaufrufe geben bei Erfolg 0 zurück, aber
einige können im selben Fall Werte ungleich Null ausgeben. Details dazu
stehen in den zugehörigen Handbuchseiten beschrieben.
In einigen Fällen muss der Programmierer ein Feature-Test-Makro
definieren, um die Deklaration eines Systemaufrufs aus der im Abschnitt
ÜBERSICHT genannten Header-Datei zu erhalten (Dort, wo es erforderlich
ist, müssen diese Feature-Test-Makros vor dem Einbinden
irgendeiner Header-Datei definiert werden). Für solche
Fälle ist in der Handbuchseite das benötigte Makro beschrieben.
Weitere Infos zu Feature-Test-Makros liefert Ihnen
feature_test_macros(7).
Bestimmte Ausdrücke und Abkürzungen dienen der Kennzeichnung von
UNIX-Varianten und -Standards, zu denen die Aufrufe in diesem Abschnitt
konform sind. Siehe auch:
standards(7).
ANMERKUNGEN¶
Direkter Aufruf¶
Meistens ist es nicht nötig, einen Systemaufruf direkt vorzunehmen, aber
manchmal bietet die Standard-C-Bibliothek keine passende Wrapper-Funktion.
Dann muss der Programmierer den Systemaufruf via
syscall(2) per Hand
erledigen. Früher war dies auch mit einem der _syscall-Makros aus
_syscall(2) möglich.
Autoren und Copyright-Bedingungen¶
Den oder die Verfasser und die Copyright-Bedingungen finden Sie im Kopf des
Quelltextes der englischen Ausgabe der Handbuchseite. Beachten Sie, dass sie
sich von Seite zu Seite unterscheiden können! Hinweise zu den
Copyright-Bedingungen der Übersetzung finden Sie weiter unten.
SIEHE AUCH¶
_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),
svipc(7),
symlink(7),
time(7)
KOLOPHON¶
Diese Seite ist Teil der Veröffentlichung 3.74 des Projekts Linux-
man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler
gemeldet werden können sowie die aktuelle Version dieser Seite finden
sich unter
http://www.kernel.org/doc/man-pages/.
ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Erik Pfannenstein
<debianignatz@gmx.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General
Public License Version 3 oder neuer bezüglich der
Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken
Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.