Bedeutung der doppelten Unterstrich am Anfang
In der standard-Bibliothek (glibc) ich sehe definierten Funktionen mit doppelten führenden Unterstriche, wie __mmap
im sys/mman.h
. Was ist der Zweck? Und wie können wir noch eine Funktion aufrufen mmap
dem scheint nicht zu sein, erklärte überall. Ich meine, wir sind sys/mman.h
für die, aber sys/mman.h
nicht erklären mmap
, es erklärt nur __mmap
.
- Doppelte Unterstriche: stackoverflow.com/questions/224397/... (Frage sagt C++, aber die
__
ist von der ANSI-C-standard). Auch in meiner version vonsys/mman.h
,mmap
definiert ist. __mmap
ist nicht deklariert ist überall von glibc. Keine Ahnung, was du redest.- Sind Sie auf der Suche auf kernel-Header, nicht die glibc-Header?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Von GNU ' s manual:
Dies ist eine Konvention, die auch von C-und C++ - Anbietern.
Namen mit doppelten führenden Unterstriche sind reserviert für interne Verwendung durch die Implementierung (compiler/standard library/etc.). Sollten Sie noch nie in Ihrem code. Der Zweck dieses reservierten namespace geben Sie den system-Header-Namen, die Sie verwenden können, ohne potenziell Kollision mit Namen, die Sie in Ihrem Programm.
ISO 9899:2011