問題タブ [boost-process]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
635 参照

c++ - boost::process システムがファイル記述子をリークしている

boost::process::system が fds をリークしているようです:

3秒ごとにiptables構成をフラッシュするこの単純なコードがあるとしましょう(単なる例):

リストを作成して開いているファイル記述子の数を観察すると、/proc/PID/fd |wc -l3 秒ごとに数が 1 ずつ増加していることがわかります。最終的に、1024 に達すると、開いているファイルが 多すぎるsystemことを示す例外が呼び出しによってスローされるため、プログラムは中止されます。what()

この fd 漏れを回避するにはどうすればよいですか? ブースト1.69を使用しています。

編集: と置き換えboost::process::systemてもboost::process::child役に立たないようですchild。切り離されたかどうかに関係なく、fds もリークしているようです。

編集 2: Valgrind ログ--track-fds=yes: https://termbin.com/d6ud