Библиотеки GNU. Какая библиотека будет иметь символ _POSIX_OPEN_MAX?

Я пытаюсь узнать больше о Linux на уровне системных вызовов/интерфейсов. Начиная с лимитов, я читал в APUE, что такие лимиты, как _POSIX_OPEN_MAX, являются символами. Погуглив, я прочитал, что эти символы есть в библиотеках. Как узнать, какая библиотека будет иметь символ _POSIX_OPEN_MAX? Я нашел файлы заголовков с ограничениями, но я хотел бы узнать, как найти их в скомпилированных библиотеках GNU в моей системе Linux (используя nm?). Существует так много библиотек, что я не знаю, с чего начать, чтобы определить, где будут эти символы.


person dman    schedule 09.03.2013    source источник


Ответы (1)


_POSIX_OPEN_MAX — это макрос, который заменяется во время компиляции. В большинстве случаев вся информация о макросах после препроцессинга отбрасывается, поэтому символа как такового нет.

Возможно включить в gcc информацию о макросах, используя флаги -gdwarf-2 и -g3, но очень маловероятно, что эти параметры использовались при создании системных библиотек. Короче говоря, вы, скорее всего, не найдете его ни в одном из них.

person FatalError    schedule 09.03.2013
comment
Это имеет смысл и для меня. Но моя книга APUE вызывает эти символы при использовании программы AWK для их обнаружения в pathconf.sym и sysconf.sym. (в разделе лимитов 2.5). - person dman; 09.03.2013