我正在使用 Ubuntu Linux 12.04 并编写一个使用 ncurses 的程序。我的程序可以选择执行从属进程(“shell 转义”)。在创建从属流程之前,我做
reset_shell_mode( );
putp( exit_ca_mode ); // From <term.h>
然后当从属进程退出时,我恢复我的诅咒显示
putp( enter_ca_mode ); // From <term.h>
reset_prog_mode( );
refresh( );
这工作正常。但是,我的程序还想在启动从属进程之前输出一些信息。它还希望在从属进程退出时但在返回完整的诅咒显示之前输出一些附加信息。因此我有(缩写):
reset_shell_mode( );
putp( exit_ca_mode );
printf( "Don't forget... blah, blah\n" );
system( external_command );
printf( "Updating, etc\n" );
putp( enter_ca_mode );
reset_prog_mode( );
refresh( );
问题是我的程序在调用 system() 之前和之后生成的文本没有出现。我想也许它仍然会进入一些与诅咒相关的缓冲区。我不知道。
如何让父进程也输出到终端以及子进程?