UNIXプログラミング質問すれ
■ このスレッドは過去ログ倉庫に格納されています
0758デフォルトの名無しさん
NGNG>新しくプロセスを作らず、既存のプロセスの上で走らせるため、
>そこでプログラムが終了した場合は処理が戻ってこないという事ですか?
正解。
>systemを使った場合は戻ってくるのはなぜでしょう??
manを読むと分かると思うんだけど、system()は引数のコマンドを/bin/shの
上で実行するから。
つまり、あるプロセスAの中でsystem("ls");ってやると、lsの起動時には
A→/bin/sh→ls
と3つのプロセスが動いてることになる。これがsystem("exec ls");だと、
A→/bin/sh
このshがlsに置き換わって
A→ls
となる。
■ このスレッドは過去ログ倉庫に格納されています