我尝试ncurses为 php7.0安装扩展,但出现此错误
/bin/bash /tmp/pear/download/ncurses-1.0.2/libtool --mode=compile cc -I. -I/tmp/pear/download/ncurses-1.0.2 -DPHP_ATOM_INC -I/tmp/pear/download/ncurses-1.0.2/include -I/tmp/pear/download/ncurses-1.0.2/main -I/tmp/pear/download/ncurses-1.0.2 -I/usr/include/php/20151012 -I/usr/include/php/20151012/main -I/usr/include/php/20151012/TSRM -I/usr/include/php/20151012/Zend -I/usr/include/php/20151012/ext -I/usr/include/php/20151012/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/download/ncurses-1.0.2/ncurses.c -o ncurses.lo
libtool: compile: cc -I. -I/tmp/pear/download/ncurses-1.0.2 -DPHP_ATOM_INC -I/tmp/pear/download/ncurses-1.0.2/include -I/tmp/pear/download/ncurses-1.0.2/main -I/tmp/pear/download/ncurses-1.0.2 -I/usr/include/php/20151012 -I/usr/include/php/20151012/main -I/usr/include/php/20151012/TSRM -I/usr/include/php/20151012/Zend -I/usr/include/php/20151012/ext -I/usr/include/php/20151012/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/download/ncurses-1.0.2/ncurses.c -fPIC -DPIC -o .libs/ncurses.o
/tmp/pear/download/ncurses-1.0.2/ncurses.c:36:37: error: unknown type name ‘zend_rsrc_list_entry’
static void ncurses_destruct_window(zend_rsrc_list_entry *rsrc TSRMLS_DC)
^
/tmp/pear/download/ncurses-1.0.2/ncurses.c:45:36: error: unknown type name ‘zend_rsrc_list_entry’
static void ncurses_destruct_panel(zend_rsrc_list_entry *rsrc TSRMLS_DC)
^
/tmp/pear/download/ncurses-1.0.2/ncurses.c: In function ‘zm_startup_ncurses’:
/tmp/pear/download/ncurses-1.0.2/ncurses.c:247:57: …Run Code Online (Sandbox Code Playgroud) 使用php ncurses,我很想知道具体是什么ncurses_def_shell_mode()和ncurses_def_prog_mode()功能.他们没有在PHP手册中记录,我所做的一点点man ncurses没有帮助.
如果我在调用之前调用ncurses_def_shell_mode()然后重置,根据扩展名的源应该调用ncurses,终端光标仍然以某种方式丢失.ncurses_reset_shell_mode()ncurses_end()endwin
<?php
ncurses_init(); // start ncurses window
ncurses_def_shell_mode();
sleep(2); // print some stuff here
ncurses_reset_shell_mode();
ncurses_end(); // clean up and get out
exit;
?>
Run Code Online (Sandbox Code Playgroud)
我想有和没有,ncurses_def_shell_mode()和ncurses_def_prog_mode(),但不知何故,窗口不退出正确重置尽管正确调用复位.我误解了这些功能应该如何工作?我能够挖掘出非常少的信息,以便更深入地了解它们的正确用法.
我知道ncurses可能过时,但这使得知道如何正确使用它变得更加困难.
这里预期的行为是在调用之后ncurses_reset_shell_mode()或者ncurses_reset_prog_mode()shell或prog窗口应该恢复到之前保存的状态.
实际的行为似乎是shell在退出时是一个破碎的状态.光标不闪烁,键入不会显示终端中的任何内容.但是,终端正在正确接收输入,因为键入命令并按下输入仍然有效.