找到定义了特定函数的库

时间:2014-04-21 05:08:14

标签: c++ function

有人给我发了一条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

任何人都可以帮助我吗?

2 个答案:

答案 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文件。