は、システム上でフォーク/ execのを好むために何らかの理由がある2つの一般的なUNIXでのCから外部実行可能ファイルを実行する方法、をsystem()またはfork()/ exec()に変更しますか?
system()
コールと
pid = fork()
switch(pid)
//switch statement based on return value of pid,
//one branch of which will include and exec() command
があるように見えますそれらが機能的に等価である場合(親プロセスは、子プロセスが終了するのを待っており、子プロセスから複雑な情報は返されません)。
私は相違点を尋ねました。彼は 'system()'はOSのAPIであり、 'fork/exec'はシステムレベルの呼び出しだと言いました。これは本当ですか?私の理解では、OSへのAPIは、システムコールとは対照的に、追加のチェックが含まれている可能性があるため、より安全です。 – Celeritas
@Celeritasある意味では(システムコールはOS APIでもありますが)私の答えで議論したように、あなたの結論は間違っています。 'system'はチェックを追加しません。チェックされていない機能が追加されます。 –