Как искать API в Linux
Модератор: Модераторы
Как искать API в Linux
Добрый день!
Возникла потребность узнать в программе под Linux имя компьютера.
И таких вопросов, наверное, скоро будет очень много. Отсюда вопрос общего характера.
Если мне надо узнать имя компьютера под Windows, я обращаюсь к справочнику API. Есть много таких справочников и от самой Microsoft и в переводе, и сокращенные - только часто необходимое, можно искать, можно читать все подряд.
Как поступают разработчики Linux в таком случае? Есть где-то в открытом доступе некий справочник, где можно узнать как вызвать нечто в ядре (или где?) и получить желаемое, например, имя компьютера. В общем, мне нужен аналог API как в Windows.
Про имя компьютера.
Хотелось бы понять, это вообще можно получить вызовом? Это надо искать какой-то файл? Это только и исключительно в консоли можно получить, и больше никак? Это страшный секрет (невозможно найти в интернет - все ссылаются на сторонние библиотеки или консоль, но они же как-то это подучают)?
И самый неприятный вопрос. Мне придется изучать исходники Linux, чтобы узнать как вызовом некой функции узнать имя компьютера, и подобные вещи?
Возникла потребность узнать в программе под Linux имя компьютера.
И таких вопросов, наверное, скоро будет очень много. Отсюда вопрос общего характера.
Если мне надо узнать имя компьютера под Windows, я обращаюсь к справочнику API. Есть много таких справочников и от самой Microsoft и в переводе, и сокращенные - только часто необходимое, можно искать, можно читать все подряд.
Как поступают разработчики Linux в таком случае? Есть где-то в открытом доступе некий справочник, где можно узнать как вызвать нечто в ядре (или где?) и получить желаемое, например, имя компьютера. В общем, мне нужен аналог API как в Windows.
Про имя компьютера.
Хотелось бы понять, это вообще можно получить вызовом? Это надо искать какой-то файл? Это только и исключительно в консоли можно получить, и больше никак? Это страшный секрет (невозможно найти в интернет - все ссылаются на сторонние библиотеки или консоль, но они же как-то это подучают)?
И самый неприятный вопрос. Мне придется изучать исходники Linux, чтобы узнать как вызовом некой функции узнать имя компьютера, и подобные вещи?
А вы Линукс хоть видели? Имя компьютера обычно фигурирует в приглашении $ , По поводу вызовов api есть команда man (от слова manual)
Видел.DedFrend писал(а):А вы Линукс хоть видели? Имя компьютера обычно фигурирует в приглашении $ , По поводу вызовов api есть команда man (от слова manual)
Что мне это дает? Мне нужно получить имя компьютера в программе, а не посмотреть в терминале.
Зачем мне команды консоли?
Вы не программист, видимо?
-
xchgeaxeax
- постоялец
- Сообщения: 198
- Зарегистрирован: 11.05.2023 02:51:40
все есть в командах man. просто попробуйте например man connect или man printf
- Ichthyander
- энтузиаст
- Сообщения: 701
- Зарегистрирован: 04.04.2007 08:32:43
- Откуда: Астрахань
- Контактная информация:
Собственно смысл того, что он сказал в том, что принцип работы с программами через CLI (интерфейс командной строки) универсален и сработает как при работе с консолью человека, так и при использовании во внешней программе, даже если не предусмотрено какого-либо особого API данной программойstikriz11 писал(а):Видел.DedFrend писал(а):А вы Линукс хоть видели? Имя компьютера обычно фигурирует в приглашении $ , По поводу вызовов api есть команда man (от слова manual)
Что мне это дает? Мне нужно получить имя компьютера в программе, а не посмотреть в терминале.
Зачем мне команды консоли?
Вы не программист, видимо?
Да, что-то есть, спасибо. Я так понял, что hostname - только в файле.
Вот эти файлы с настройками, они в разных linux везде всегда в одних и тех же каталогах рассыпаны? Можно надеяться, что это так?
Еще бы заголовочные файлы сишные на паскаль переведенные...
Добавлено спустя 1 минуту 11 секунд:
Вот эти файлы с настройками, они в разных linux везде всегда в одних и тех же каталогах рассыпаны? Можно надеяться, что это так?
Еще бы заголовочные файлы сишные на паскаль переведенные...
Добавлено спустя 1 минуту 11 секунд:
Не, такой глупостью хотелось бы не заниматься.stikriz11 писал(а):Да, что-то есть, спасибо. Я так понял, что hostname - только в файле.
Вот эти файлы с настройками, они в разных linux везде всегда в одних и тех же каталогах рассыпаны? Можно надеяться, что это так?
Еще бы заголовочные файлы сишные на паскаль переведенные...
-
wwswowsogon
- постоялец
- Сообщения: 157
- Зарегистрирован: 23.12.2008 19:41:37
Нет.stikriz11 писал(а): Можно надеяться, что это так?
Думаю, тогда должен быть конфиг, в котором пути ко всем конфигам, и еще один конфиг, в котором путь к этому конфигу.
https://chromium.googlesource.com/chrom ... yscalls.md - системные вызовы для разных архитектур.
Определяем версию ОС в C++, на паскале то же самое.
Определяем версию ОС в C++, на паскале то же самое.
Если кому интересно, нашел synsock.GetHostName() в компонентах synapse. Реализация в Linux через модуль unit, а в винде - там вызов dll. Я как раз этим сокетом и пользуюсь.
Добавлено спустя 10 минут 55 секунд:
Думаю, алгоритм должен быть такой:
1. Где-то надо узнать точное имя функции. Скорее всего, на форумах про консоль.
2. В консоли пишем man [имя_нашей_функции] - читаем справку с того места, где и если есть include.
3. Начинаем беспорядочный поиск чего-то подобного в исходниках FPC и сторонних компонентов. Если нашли - готово.
4. Если не нашли, углубляемся в исходники сишной библиотеки. Вот, еще надо компилятор поставить.
Добавлено спустя 10 минут 55 секунд:
Думаю, алгоритм должен быть такой:
1. Где-то надо узнать точное имя функции. Скорее всего, на форумах про консоль.
2. В консоли пишем man [имя_нашей_функции] - читаем справку с того места, где и если есть include.
3. Начинаем беспорядочный поиск чего-то подобного в исходниках FPC и сторонних компонентов. Если нашли - готово.
4. Если не нашли, углубляемся в исходники сишной библиотеки. Вот, еще надо компилятор поставить.
Читать документацию - единственный реальный путь к освоению Linux. Гадать и предполагать бессмысленно, метод "научного тыка" в Linux потребует несопоставимых, с ценностью результата, ресурсов.stikriz11 писал(а):Думаю, тогда должен быть конфиг, в котором пути ко всем конфигам, и еще один конфиг, в котором путь к этому конфигу.
Ссылку дадите?RRYTY писал(а):Читать документацию
- Снег Север
- долгожитель
- Сообщения: 3067
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
"Документация Линукс" рассчитана исключительно на красноглазиков-консольщиков, а не на нормальных программистов. Имел печальный опыт убедиться.
Искренне сочувствую. Но другого пути нет. И не будет.Снег Север писал(а):Имел печальный опыт убедиться.
