c - delwin(),endwin(),不在条件语句内工作

标签 c ncurses

根据逻辑,下面的代码必须结束窗口,并且必须返回带有 ls 输出的控制台窗口,但它返回带有黑色背景的窗口,并且在该窗口中每个命令都在运行,但不显示我是什么即使我没有使用 noecho(),写入和输出也会以一种非常不寻常的方式进行。

else if(selected_item==0){
  wprintw(messagebar,"You have selected menu SHAILENDRA SINGH.",1);
  write_data0();
  if(fork())
    wait(0);
  else
    execlp("clear","clear",(char *)NULL);
  execlp("ls","ls",(char *)NULL);
  execlp("konsole","konsole",(char *)NULL);
  ESCAPE;
  refresh();
  delwin(menubar);
  delwin(messagebar);

  endwin();
}

需要帮助和建议来删除我的代码中的此错误。

最佳答案

execlp 将结束当前程序并运行被调用的程序。

execlp("ls","ls",(char *)NULL); 之后的任何内容都永远不会被执行。

每个 execlp 都需要一个 fork

关于c - delwin(),endwin(),不在条件语句内工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13251853/

相关文章:

c - 尽管提供了库,但编译后 .so 中的 undefined symbol

c - 'Segment type: Externs'在IDA中是什么意思?

unix - 我能否确定终端是否解释 C1 控制代码?

c++ - 控制台输入中基于向上箭头的命令历史记录 (C++)

char数组写入文件

c - BACnet 堆栈 Makefile

c - 使用 fgets() 读取文件最后一行时出现段错误

c - 什么是可以在 emacs shell 下工作的 ncurses 的好替代品?

c - ncurses: Subwin 或 pad 的 subpad

c - 为什么在使用 ncurses 时不能有一个成员名为 "refresh"的结构?