Как найти заголовочный файл, где функция c определяется?

Эта ошибка обычно обнаруживается, если пакет не устанавливал правильно. Что делает

dpkg -l bluez

показать? Это обычно происходит двумя способами

  • Установка была прервана.

  • Существует что-то не так с {пред/сообщение} - сценарий блюза установки (или подобно).

Насколько первый идет, Вы знаете о прерванной установке? Если это - проблема, переустановка может устранить проблему.

Если последний, необходимо все еще сначала попытаться переустановить. Однако как последнее прибежище Вам, вероятно, придется вручную отредактировать {пред/сообщение} - {устанавливают/удаляют} сценарии, в зависимости от того, где проблема, и хотите ли Вы попытаться заставить ее устанавливать правильно или просто хотеть удалить ее полностью. Обычно проблема состоит в том, что что-то в сценариях перестало работать и вызывает dpkg к ошибке, таким образом, решение состоит в том, чтобы вырезать ту вещь. Все такие сценарии расположены в /var/lib/dpkg/info. Искать bluez.postinst или подобный. NB: Если это - проблема, это может быть ошибка, поэтому удостоверьтесь, что зарегистрировали отчет об ошибках с Системой отслеживания ошибок Debian.

6
20.02.2012, 21:10
2 ответа
$ man 2 read

...

READ(2)                    Linux Programmer's Manual                   READ(2)

NAME
       read - read from a file descriptor

SYNOPSIS
       #include <unistd.h>
 ...
8
27.01.2020, 20:25
  • 1
    Обратите внимание что 2 в man 2 read то, потому что это - системный вызов, много библиотечных функций будут в разделе 3 из руководства. Можно использовать man -k или apropos получить список команд/вызовов/файлов/API, имя которых или описание включают слово и в каком разделе (разделах) они описаны. –  dmckee --- ex-moderator kitten 21.02.2012, 01:00

Если Вы будете искать в заголовочных файлах в Вашей системе, то Вы найдете, в каком заголовочном файле функция объявляется в Вашей системе. Это может быть трудно как иногда, функция объявляется через сложный макрос. И это только скажет Вам, какой заголовочный файл объявляет функцию в Вашей системе; это может даже быть заголовочным файлом, который Вы не можете включать непосредственно, потому что ему нужны другие заголовки, чтобы быть на первом месте.

Единственный безопасный способ найти, что заголовочный файл включать состоит в том, чтобы консультироваться с документацией библиотеки, которая обеспечивает функцию. Для стандартной библиотеки можно консультироваться:

  • Стандарт C (C89=C90, C99 или C11) определяет функции, которые доступны на каждой платформе, работающей C.
  • Стандартный / Единственный стандартный Unix Unix POSIX (POSIX:2004, POSIX:2008) определяет функции, которые доступны на каждой подобной Unix платформе.
  • Ваша платформа может иметь другие функции или может предложить дополнительные функции. Консультируйтесь с его страницами справочника (man 3 function_name или man 2 function_name — различие между 2 и 3 является в основном историческим), или другая документация (например, GNU libc руководство по Linux).
1
27.01.2020, 20:25

Теги

Похожие вопросы