c++ - スレッドC++を使用してシェルコマンドを実行する

原文 c++ multithreading shell

スレッドを作成することによって、つまりpopen / systemまたはfork-execバリアントを使用せずにシェルコマンドを実行することは可能ですか?なぜか、なぜそうでないのか?

より多くのコンテキストを提供するために、私はマルチスレッドプログラムを実行しています。そこでは、スレッドの1つがシェルスクリプトを実行する必要があります。現在popen()を使用しています。しかし、マルチスレッドのプログラムでフォークすることは悪い習慣と考えられているので、スレッドを生成することによって同じことを達成することは可能ですか?
答え
マルチスレッドとfork + execの潜在的な問題に関する有用な要約を以下に示します。http://www.linuxprogrammingblog.com/threads-and-fork-think-twice-before-using-them

他のプログラムやシェルスクリプトを実行したい場合は、fork + execを使用する必要があるようですが、それは避けられません。ただ注意して、フォークのような「悪い」イベントに備えてスレッドを準備してください。また、問題がある場合は、メインアプリケーションから実行されている特別なシングルスレッドの信頼された実行ヘルパーで不要なファイル記述子をすべて閉じることもできます。
関連記事

c++ - ポインターと多次元配列の質問

c++ - Qt:フォーム全体にフォントの変更を適用する

java - 最小の「XOR」演算でバイナリマトリックスを再作成する

c++ - doxygenの「ファイルドキュメント」リストから「README.md」を除外します

java - Android Gstreamer SDKでANativeWindow_lockがエラー-22を返す

c++ - C++プロキシDLL(64ビット)

c++ - 誤った値を返す二重ハッシュ関数

c++ - OpenCVでのレーン検出器分割線C++

c++ - Qtでマウスイベントが発生したときに呼び出される関数の宣言

c++ - リンクリストで変更されたデータはメモリに反映されません