Откуда берутся файлы заголовков bits/X (например, bits/errno.h)?

Я заметил, что в моем каталоге /usr/include есть папка bits с кучей заголовочных файлов. Некоторые файлы имеют формат bits/errno.h или bits/in.h.

Откуда берутся эти файлы? Они не выглядят частью libc. Например, musl не поставляется с ними: https://github.com/cloudius-systems/musl/tree/master/include, однако я заметил, что musl зависит от них.


person Roymunson    schedule 14.09.2020    source источник
comment
Не совсем дубликат, но это может помочь.   -  person bnaecker    schedule 15.09.2020
comment
Они предоставляются компилятором и/или библиотеками. Они предназначены для предоставления битов информации, которая может понадобиться одному или нескольким другим заголовкам. Они могут варьироваться в зависимости от типа системы. Они ограничивают изменения основных заголовков, зависящие от платформы. Они не должны использоваться непосредственно программой — программы должны включать "header.h" или "sys/header.h" (или использовать нотацию с угловыми скобками <sys/header.h>). Препроцессор выбирает правильные bits/*.h файлов.   -  person Jonathan Leffler    schedule 15.09.2020


Ответы (1)


Скорее всего, они являются частью libc(x)-dev (номенклатура будет зависеть от выбранного вами дистрибутива)...

Для семейства Debian/Ubuntu вы можете попробовать

dpk -S /path/to/bits/errno.h

Для семейства RHEL/Centos вы можете попробовать

rpm -qf /path/to/bits/errno.h
person tink    schedule 15.09.2020