-1

ロジックに従って、以下のコードはウィンドウを終了し、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();
}

私のコードでこのバグを取り除くには、助けと提案が必要です。

4

1 に答える 1

3

execlp現在のプログラムを終了し、代わりに呼び出されたプログラムを実行します。

それ以降execlp("ls","ls",(char *)NULL);は実行されません。

forkfor eachが必要ですexeclp

于 2012-11-06T13:23:08.000 に答える