Ich habe Programme in C/C++ geschrieben, die die Linux-API nutzen und Systemaufrufe wie fork(), read(), write() usw. machen. Jetzt frage ich mich, ob diese Bibliotheksfunktionen wirklich System sind Aufrufe, oder sind sie eine Art Wrapper-Funktionen.Sind Funktionsaufrufe wie read(), write() tatsächliche Systemaufrufe in Linux?
Was passiert wirklich, wenn ein Programm einen Aufruf von write() aufruft? Wie funktioniert diese Funktion mit dem Kernel? Wenn dies ein Wrapper ist, warum brauchen wir es dann?
Wie wäre es assenbly Code zu lesen, die der Compiler emittiert oder mit einem Debugger zu verfolgen, was Dein Programm? – MikeCAT
Ein schneller Weg, um herauszufinden, welche Anrufe sind einfache System Call Wrapper ist in der Regel zu verwenden "man". Abschnitt 2 enthält Systemaufrufe, so dass "man 2 read" angezeigt wird, ist ein Hinweis darauf, dass das Lesen tatsächlich ein eingehüllter Systemaufruf ist. –