有人给我发了一条C ++代码,它包含了一些我不熟悉的标题和函数。我想找到哪个头文件定义了一个特定的函数。例如,我有这些标题:
#include <iostream>
#include <ncurses.h>
#include <stdlib.h>
#include <stdio.h>
#include <pthread.h>
#include <time.h>
#include <unistd.h>
#include <termios.h>
#include <fcntl.h>
我想知道他们的女巫定义了这个功能:
tcgetattr
或者他们中的哪一个定义了这个结构:
termios
任何人都可以帮助我吗?
答案 0 :(得分:1)
tcgetattr
是来自termios.h
的“获取属性”功能。 termios
结构也来自那个标题,因为我认为这个标题不言而喻,因为它共享名称。
例如,请参阅Linux手册页here。
如果您正在查看哪些标头包含任意函数,我通常(在类UNIX操作系统中)只在grep
已知位置,如:
grep tcgetattr /usr/include/*.h /usr/include/*/*.h
(或使用grep
的递归选项,或find
来搜索所有内容。)
答案 1 :(得分:0)
找出函数声明位置的一般方法,如果你不知道它应该在哪里:
创建仅包含这些行的C ++源文件。我们称之为test.cc
。
使用-E
选项编译文件。
g++ -E -o test.out test.cc
在test.out
中查找要跟踪的功能。从那里,您可以追踪它来自哪个.h
文件。