Я пытаюсь узнать больше о Linux на уровне системных вызовов/интерфейсов. Начиная с лимитов, я читал в APUE, что такие лимиты, как _POSIX_OPEN_MAX, являются символами. Погуглив, я прочитал, что эти символы есть в библиотеках. Как узнать, какая библиотека будет иметь символ _POSIX_OPEN_MAX? Я нашел файлы заголовков с ограничениями, но я хотел бы узнать, как найти их в скомпилированных библиотеках GNU в моей системе Linux (используя nm?). Существует так много библиотек, что я не знаю, с чего начать, чтобы определить, где будут эти символы.
Библиотеки GNU. Какая библиотека будет иметь символ _POSIX_OPEN_MAX?
Ответы (1)
_POSIX_OPEN_MAX
— это макрос, который заменяется во время компиляции. В большинстве случаев вся информация о макросах после препроцессинга отбрасывается, поэтому символа как такового нет.
Возможно включить в gcc
информацию о макросах, используя флаги -gdwarf-2
и -g3
, но очень маловероятно, что эти параметры использовались при создании системных библиотек. Короче говоря, вы, скорее всего, не найдете его ни в одном из них.
person
FatalError
schedule
09.03.2013
Это имеет смысл и для меня. Но моя книга APUE вызывает эти символы при использовании программы AWK для их обнаружения в pathconf.sym и sysconf.sym. (в разделе лимитов 2.5).
- person dman; 09.03.2013