system()fork()関数は、関数、execve()および関数を使用して実装されwait()ます。fork()関数はマルチスレッド プログラムでは危険であると聞いたことがあります。では、このsystem()関数はマルチスレッド プログラムでも危険ですか?
どのような問題が発生する可能性がありますか?
system()fork()関数は、関数、execve()および関数を使用して実装されwait()ます。fork()関数はマルチスレッド プログラムでは危険であると聞いたことがあります。では、このsystem()関数はマルチスレッド プログラムでも危険ですか?
どのような問題が発生する可能性がありますか?
forkは、スレッド化されたプログラムでは危険ですexecve。現在のスレッドのみがフォークされるため、フォークされたマルチスレッド プログラムでできることはexecve. の後にロックを取得していないことを確認する必要がありますfork。
+であるため、安全system()なはずです。forkexec
fork は実行中のすべてのスレッドをコピーしないため、マルチスレッド プログラムでは危険です。システムでは問題ないはずですが、シグナル ハンドラーと複数のスレッドが wait() を使用している場合、再び混乱が生じる可能性があります。