問題タブ [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.
c++ - boost::process システムがファイル記述子をリークしている
boost::process::system が fds をリークしているようです:
3秒ごとにiptables構成をフラッシュするこの単純なコードがあるとしましょう(単なる例):
リストを作成して開いているファイル記述子の数を観察すると、/proc/PID/fd |wc -l
3 秒ごとに数が 1 ずつ増加していることがわかります。最終的に、1024 に達すると、開いているファイルが 多すぎるsystem
ことを示す例外が呼び出しによってスローされるため、プログラムは中止されます。what()
この fd 漏れを回避するにはどうすればよいですか? ブースト1.69を使用しています。
編集: と置き換えboost::process::system
てもboost::process::child
役に立たないようですchild
。切り離されたかどうかに関係なく、fds もリークしているようです。
編集 2: Valgrind ログ--track-fds=yes
:
https://termbin.com/d6ud