Разочаровался. Я хотел посмотреть как в Си коде реализована функция strstr.
По умолчанию в Ubuntu отключены репозитории с исходниками. Что бы их включить, нужно в файле
/etc/apt/sources.list раскомментировать строки начинающиеся на deb-src. Потом обновить информацию о репозиториях
sudp apt update
Если интересует функция
strstr, то можно узнать в каком она заголовочно файле описываетесь с помощью man станицы
man strstr
Их этой man страницы узнаем, что функция описывается в заголовочном файле
string.h (это ещё не исходники).
Попробуем найти какой пакет установил этот файл:
dpkg -S string.h | grep -v linux
grep -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
В этих исходниках ищем файл содержащий в имени слово
strstrfind ~/glibc-src -name "*strstr*"
Исходный код функции
strstr теперь можно посмотреть в файле
~/glibc-src/glibc-2.31/string/strstr.c.