大家好,我正在编写的这个程序“可以”恢复由scr_dump()创建的转储文件;。倾倒部分正在工作,但还原部分没有。。其目的是复制标准屏幕上的任何内容并将其复制到一个文件中,通过再次调用该文件,它将绘制最初存在的内容。
int firstLoop = 0;
initscr();
while (exitCounter != 1)
{
if (firstLoop == 0)
{
printw("Testing 123");
scr_dump("test");
clear();
firstLoop = 1;
exitCounter = 1;
}
}
scr_restore("test");
doupdate();
refresh();
getch();
endwin();
}
最佳答案
您应该在refresh()
调用之后添加对printw()
的调用,否则您将转储一个空白屏幕。
使用此代码:
#include <curses.h>
int main(void) {
initscr();
noecho();
printw("Testing 123");
refresh();
scr_dump("test");
clear();
getch();
scr_restore("test");
doupdate();
refresh();
getch();
endwin();
return 0;
}
您应该会看到一个空白屏幕,然后在按键后,看到您的
"Testing 123"
消息。scr_dump()
和scr_restore()
都可能失败,因此显然应该检查返回值。