質問はタイトルです。'ls'が実行された直後に端末がシャットダウンする理由がわかりませんでした。Linuxシェルは次のようなものです。
1.while(1){
2. char * cmd = read_command();
3. int child_pid = fork();
4. if(child_pid == 0){
5. exec(cmd);
6.} else {
7. waitpid(child_pid);
8.}
9.}
したがって、シェルで「exec ls」を実行すると、cmdは「execls」の文字列になります。3行目で子プロセスがフォークされています。5行目では、exec(cmd)が子プロセスを置き換えますが、親プロセスには影響しません。父親のプロセスが影響を受けない場合、なぜターミナルがシャットダウンするのですか?
上記の私の推論の欠陥を見せてください。