Скрипт для поиска функций в программе на C

dnf— менеджер пакетов для Fedora. ОС, отличные от Fedora, будут иметь собственный менеджер пакетов.

У Ubuntu apt-get, у redhat rpm. В Arch Linux есть pacmanи так далее.

0
20.03.2018, 12:13
1 ответ

Исходный файл C трудно анализировать, как и другие файлы со структурированными данными. Лучше использовать парсер, который знает о синтаксисе языка, чем пытаться справиться с ним самостоятельно.

Предположим, у вас установлены Exuberant Ctags какectags:

find top-dir -type f -name '*.[ch]' -exec ectags -x --c-kinds=f {} ';' >table

Это найдет все файлы .cи .hв или под top-dirи создаст файл table. Содержимое tableбудет выглядеть примерно так (, где top-dirбудет .в этом примере )

.
GetTimeSeed      function    373./src/bayes.c    void GetTimeSeed (void)
InitializeMrBayes function    443./src/bayes.c    int InitializeMrBayes (void)
PrintHeader      function    821./src/bayes.c    void PrintHeader (void)
ReinitializeMrBayes function    838./src/bayes.c    int ReinitializeMrBayes (void)
main             function    101./src/bayes.c    int main (int argc, char *argv[])
readline_completion function    359./src/bayes.c    char **readline_completion (const char *text, int start, int stop)

(и др.)

Этот выходной формат должен быть легко проанализирован, например, с помощью. awk, чтобы получить именно тот формат, который вам нужен.

4
28.01.2020, 02:18

Теги

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