Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Где расположен файл Си библиотеки <cstring>  (Прочитано 2325 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ovadia

  • Автор темы
  • Любитель
  • *
  • Сообщений: 64
    • Просмотр профиля
Re: Где расположен файл Си библиотеки <cstring>
« Ответ #15 : 02 Ноября 2020, 20:14:55 »
Качайте исходники и там ищите.
Тут предлагали ничего не качать, а смотреть прямо в системе.

Оффлайн SergeyIT

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5589
  • Все по палатам!
    • Просмотр профиля
Re: Где расположен файл Си библиотеки <cstring>
« Ответ #16 : 02 Ноября 2020, 20:58:04 »
Качайте исходники и там ищите.
Ему во втором ответе это уже сказали...
Извините, я все еще учусь

Оффлайн snowin

  • Активист
  • *
  • Сообщений: 883
    • Просмотр профиля
Re: Где расположен файл Си библиотеки <cstring>
« Ответ #17 : 02 Ноября 2020, 22:36:43 »
Например, файл /usr/include/string.h не равен файлу /usr/include/linux/string.h Содержимое файлов string.h отличается.
man string
мне всё за тя искать?

Оффлайн valrust

  • Активист
  • *
  • Сообщений: 364
    • Просмотр профиля
Re: Где расположен файл Си библиотеки <cstring>
« Ответ #18 : 03 Ноября 2020, 01:29:12 »
Разочаровался. Я хотел посмотреть как в Си коде реализована функция strstr.

По умолчанию в Ubuntu отключены репозитории с исходниками. Что бы их включить, нужно в файле /etc/apt/sources.list раскомментировать строки начинающиеся на deb-src. Потом обновить информацию о репозиториях
sudp apt update
Если интересует функция strstr, то можно узнать в каком она заголовочно файле описываетесь с помощью man станицы
man strstrИх этой man страницы узнаем, что функция описывается в заголовочном файле string.h (это ещё не исходники).

Попробуем найти какой пакет установил этот файл:
dpkg -S string.h | grep -v linuxgrep -v linux добавлен, что бы из вывода убрать пакеты с заголовочными файлами ядра Linux. Видим, что файл /usr/include/string.h установлен пакетом libc6-dev.

Попробуем узнать имя пакета с исходниками:
apt-cache showsrc libc6-dev | grep PackageПакет с исходниками называется glibc.

Нужно скачать этот пакет и распаковать его (предварительно в домашнем каталоге создадим подкаталог glibc-src)
mkdir ~/glibc-src && cd glibc-src && apt-get source glibc
В этих исходниках ищем файл содержащий в имени слово strstr
find ~/glibc-src -name "*strstr*"
Исходный код функции strstr теперь можно посмотреть в файле ~/glibc-src/glibc-2.31/string/strstr.c.

Оффлайн ovadia

  • Автор темы
  • Любитель
  • *
  • Сообщений: 64
    • Просмотр профиля
Re: Где расположен файл Си библиотеки <cstring>
« Ответ #19 : 05 Ноября 2020, 11:55:36 »
valrust, большое спасибо!

 

Страница сгенерирована за 0.035 секунд. Запросов: 25.