1
を使用して-dは、ulimitはまだ無制限であることを示しているが、私は答えは1024実行ulimitのは、私は次の2行との交流のコードを実行しようとするとシステム()関数
system("ulimit -d 1024"); system("ulimit -d");
を使用して-dは、ulimitはまだ無制限であることを示しているが、私は答えは1024実行ulimitのは、私は次の2行との交流のコードを実行しようとするとシステム()関数
system("ulimit -d 1024"); system("ulimit -d");
の場合になりたいですプロセスを呼び出すためのulimitを設定したい場合は、setrlimit(2)をarguemnt RLIMIT_DATA
に設定してください。
system()
ulimitコマンドは、呼び出しプロセスではなく子プロセスにのみ影響します。
これは、 'system(..)'が新しいサブシェルを作成し、 'ulimit'がそのサブシェルだけに影響を及ぼすからです。これは 'system(...) 'からの復帰時にシェルが破壊されたときに失われます。何をしようとしていても、次のいずれかを行う必要があります:1)シェルスクリプトをラップする2)現在のプロセス*に対してこの機能を提供するAPIをハントする*。 – SuperSaiyan
これらの制限は、 'etc/security/limits.conf'を変更することで、システムごとに設定できます。これがあなたの質問からあなたを助けるかどうかは分かりません。 – David