Linux アプリケーションを作成しています。fork()
コンソール入力を受け取るアプリケーションを呼び出して実行するとどうなりますか? 以下のコードを検討してください。
int process_id = fork();
if (process_id != 0) {
/* this is the parent process */
error = execv("../my_other_app", "parameter1", NULL);
if (error < 0) {
printf("error!");
}
} else {
/* this is the child process. Wait for my_other_app to set up */
sleep(3);
/* now continue */
}
printf("########## press ENTER to stop ##########\n");
getchar();
exit(0);
問題は、Enter キーを押して停止するmy_other_app
というメッセージもあります。では、呼び出しを行うとき、どのアプリケーションがそれを読んでいるのでしょうか? メインアプリケーションまたは起動した?getchar()
my_other_app
execv
編集:my_other_app
コンソールよりも優先されるテストを通じて表示されます。これは毎回起こりますか?コンソールが代わりにメイン プロセスによって所有されていることを確認する方法はありますか?