.\" -*- coding: UTF-8 -*- .\" Copyright (C) 2007 Michael Kerrisk .\" .\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" %%%LICENSE_END .\" .\" 2007-10-23 mtk: moved the _syscallN specific material to the .\" new _syscall(2) page, and substantially enhanced and rewrote .\" the remaining material on this page. .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH INTRO 2 "1. November 2020" Linux Linux\-Programmierhandbuch .SH BEZEICHNUNG Intro \- Einführung in die Systemaufrufe .SH 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. .PP In vielen Fällen führt die C\-Bibliotheks\-Wrapper\-Funktion nur folgendes aus: .IP * 3 Kopieren der Argumente und der eindeutigen Systemaufrufnummer in die Register, in denen der Kernel sie erwartet, .IP * Verbinden in den Kernelmodus; an diesem Punkt führt der Kernel die eigentliche Arbeit des Systemaufrufs durch, .IP * Setzen von \fIerrno\fP, falls der Systemaufruf eine Fehlernummer zurückliefert, wenn der Kernel die CPU in den Benutzermodus zurückbringt. .PP Allerdings kann in einigen Fällen eine Wrapper\-Funktion mehr als das erledigen. Beispielsweise kann sie einige Argumente vorverarbeiten, bevor die Verbindung zum Kernelmodus hergestellt wird, oder einige vom Systemaufruf zurückgelieferte Werte nachbearbeiten. Wenn dies der Fall ist, wird üblicherweise auf den Handbuchseiten in Abschnitt 2 auf Details der C\-Bibliotheks\-API\-Schnittstelle (normalerweise der GNU\-Variante) und des rohen Systemaufrufs hingewiesen. Oft wird sich die BESCHREIBUNG auf die Schnittstelle der C\-Bibliothek konzentrieren und Unterschiede zum Systemaufruf befinden sich im Abschnitt ANMERKUNGEN. .PP Eine Liste der Linux\-Systemaufrufe finden Sie unter \fBsyscalls\fP(2). .SH RÜCKGABEWERT Bei Fehlern geben die meisten Systemaufrufe eine negative Zahl zurück (den negativen Wert einer der in \fBerrno\fP(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 \fIerrno\fP und gibt als Rückgabewert \-1 aus. .PP 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. .PP 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 \fIirgendeiner\fP 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 \fBfeature_test_macros\fP(7). .SH "KONFORM ZU" 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: \fBstandards\fP(7). .SH ANMERKUNGEN .SS "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 \fBsyscall\fP(2) per Hand erledigen. Früher war dies auch mit einem der _syscall\-Makros aus \fB_syscall\fP(2) möglich. .SS "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. .SH "SIEHE AUCH" .ad l .nh \fB_syscall\fP(2), \fBsyscall\fP(2), \fBsyscalls\fP(2), \fBerrno\fP(3), \fBintro\fP(3), \fBcapabilities\fP(7), \fBcredentials\fP(7), \fBfeature_test_macros\fP(7), \fBmq_overview\fP(7), \fBpath_resolution\fP(7), \fBpipe\fP(7), \fBpty\fP(7), \fBsem_overview\fP(7), \fBshm_overview\fP(7), \fBsignal\fP(7), \fBsocket\fP(7), \fBstandards\fP(7), \fBsystem_data_types\fP(7), \fBsymlink\fP(7), \fBsysvipc\fP(7), \fBtime\fP(7) .SH KOLOPHON Diese Seite ist Teil der Veröffentlichung 5.10 des Projekts Linux\-\fIman\-pages\fP. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter \%https://www.kernel.org/doc/man\-pages/. .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Erik Pfannenstein und Helge Kreutzmann erstellt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE 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 die .MT debian-l10n-german@\:lists.\:debian.\:org Mailingliste der Übersetzer .ME .