Хрестоматия по программированию на Си в Unix


Простые программы и алгоритмы. Сюрпризы, советы. Хрестоматия по программированию на Си в Unix - стр. 6


  • описание (документация).
  • include-файлы, содержащие форматы данных используемые функциями библиотеки (именно эти файлы включались #include в исходные тексты библ. функций. Теперь уже вы должны включать их в свою программу).
  • Таким образом вы знаете, как надо вызывать библиотечные функции и какие структуры данных вы должны использовать в своей программе для обращения к ним (хотя и не имеете текстов самих библиотечных функций, т.е. не знаете, как они устроены. Например, вы часто используете printf(), но задумываетесь ли вы о ее внутреннем устройстве?). Некоторые библиотечные функции могут быть вообще написаны не на Си, а на ассемблере или другом языке программирования. Еще раз обращаю ваше внимание, что библиотека содержит не исходные тексты функций, а скомпилированные коды (и include-файлы содержат (как правило) не тексты функций, а только описание форматов данных)! Библиотека может также содержать статические данные, вроде массивов строк-сообщений об ошибках.

    Посмотреть список файлов, содержащихся в библиотеке, можно командой

    ar tv имяФайлаБиблиотеки

    а список имен функций - командой

    nm имяФайлаБиблиотеки

    Извлечь файл (файлы) из архива (скопировать его в текущий каталог), либо удалить его из библиотеки можно командами

    ar x имяФайлаБиблиотеки имяФайла1 ... ar d имяФайлаБиблиотеки имяФайла1 ...

    где ... означает список имен файлов.

    "Лицом" библиотек служат прилагаемые к ним include-файлы. Системные includeфайлы, содержащие общие форматы данных для стандартных библиотечных функций, хранятся в каталоге /usr/include и подключаются так:

    для /usr/include/файл.h надо #include <файл.h>

    для /usr/include/sys/файл.h #include <sys/файл.h>

    (sys - это каталог, где описаны форматы данных, используемых ядром ОС и системными вызовами). Ваши собственные include-файлы (посмотрите в предыдущий раздел!) ищутся в текущем каталоге и включаются при помощи

    #include "файл.h" /* ./файл.h */ #include "../h/файл.h" /* ../h/файл.h */ #include "/usr/my/файл.h" /* /usr/my/файл.h */




    - Начало -  - Назад -  - Вперед -