我试图了解 ncurses 的工作原理,因为我们要求initscr()
ncurses 初始化屏幕
在文件 ncurses lib_initscr.c 中定义的函数并尝试通过 newterm 即 lib_newterm.c 文件打开终端,它使用:
if ( TINFO_SETUP_TERM(&new_term, name,fileno(_ofp), &errret, FALSE) != ERR) ){
}
当我打开 curses.priv.h 为:
#ifdef USE_TERM_DRIVER
#define TINFO_SETUP_TERM(tpp, name, fd, err, reuse) \
_nc_setupterm_ex(tpp, name, fd, err, reuse)
#else
#define TINFO_SETUP_TERM(tpp, name, fd, err, reuse) \
_nc_setupterm(name, fd, err, reuse)
#endif
在 lib_setup.c 中,函数定义如下:
#ifdef USE_TERM_DRIVER
NCURSES_EXPORT(int) _nc_setupterm(
NCURSES_CONST char *tname, int Filedes, int *errret, bool reuse){
}
#endif
我没有找到_nc_setupterm_ex()
源代码中定义的函数在哪里,如果USE_TERM_DRIVER
没有定义,那么它如何链接到_nc_setupterm();