7
Ich schreibe ein c-Programm, das fcntl.h
Datei enthält. Ich die Datei suchen und die Ergebnisse wie folgt erhalten:Warum gibt es mehrere fcntl.h in Linux?
[[email protected] csapp]$ find /usr/include/ -name "fcntl.h"
/usr/include/asm/fcntl.h
/usr/include/asm-generic/fcntl.h
/usr/include/linux/fcntl.h
/usr/include/sys/fcntl.h
/usr/include/bits/fcntl.h
/usr/include/fcntl.h
[[email protected] csapp]$ grep -rn "O_RDONLY" /usr/include/
/usr/include/asm-generic/fcntl.h:19:#define O_RDONLY 00000000
/usr/include/linux/cdrom.h:32: * - drive = open("/dev/cdrom", O_RDONLY);
/usr/include/linux/cdrom.h:33: * + drive = open("/dev/cdrom", O_RDONLY | O_NONBLOCK);
...
ich gcc Anrufe finden /usr/include/asm-generic/fcntl.h
eigentlich, wenn ich #include <fcntl.h>
in Programm setzen. Ich frage mich nur, wie gcc bestimmt, welches "fcntl.h" aufgerufen werden soll. Gibt es eine Anrufreihenfolge oder einen Vorrang?
Es hängt von PATH-Einstellungen ab, oder gcc '-I' Option. – LPs
werfen Sie einen Blick auf [Suchpfad] (https://gcc.gnu.org/onlinedocs/cpp/Search-Path.html) – LPs
@LPs: Warum technisch wahr, würden Sie nur die eine in '/ usr/einschließen ". –