为什么td, th {text-align: center}
导致第二个delwin
没有返回任何内容?我认为initscr
会在调用endwin
之前重置为状态。
initscr
答案 0 :(得分:4)
实际发生的是initscr
返回 stdscr
(标准窗口)。 delwin
已将其删除(并且指针是 SCREEN
结构的一部分,该结构已正式更新),因此后续调用initscr
(未创建新的屏幕 newterm
)会返回 NULL
指针。原则上,应用程序可以引用 curscr
和 newscr
(在初始化期间创建的另外两个窗口),但Perl接口可能会忽略这些。 / p>
然而,阅读文档会有所帮助。引用initscr
手册页的Differences部分:
<强>差异强>
X / Open指定便携式应用程序不得再调用
initscr
不止一次:
使用
initscr
的便携式方式仅使用refresh
(请参阅 curs_refresh(3x))在endwin之后恢复屏幕。此实施允许在
initscr
之后使用endwin
。旧版本的curses(例如BSD 4.4)可能返回了空指针 检测到错误时从
initscr
,而不是退出。它是 在XSI Curses中检查initscr
的返回值是安全但多余的。