回答:
混乱は、ulimitがラップする基礎となるシステムコールがsetrlimitと呼ばれるという事実に起因すると思います。
ulimitのmanページからの抜粋
ulimit()関数はプロセス制限を制御します。この関数で制御できるプロセスの制限には、書き込み可能な単一ファイルの最大サイズが含まれます(これは、RLIMIT_FSIZEでsetrlimit()を使用するのと同等です)。
さらに、setrlimit
manページを見ると、制限情報を含む基礎となるデータ構造が呼び出されrlimit
ます。
setrlimitのmanページからの抜粋
getrlimitおよびsetrlimitは、それぞれリソース制限を取得および設定します。各リソースには、rlimit構造体(getrlimit()とsetrlimit()の両方のrlim引数)で定義されているように、関連付けられたソフト制限とハード制限があります。
struct rlimit { rlim_t rlim_cur; /* Soft limit */ rlim_t rlim_max; /* Hard limit (ceiling for rlim_cur) */ };
ulimitのmanページを参照すると、システムのrlimitsおよびprintf、read、sourceなどのbash-builtinsの一部を制御するbashシェルコマンドです。
参照getrlimitsページを、それがシステムrlimitsを制御するためのシステムコールを使用してC / C ++を介してAPIを表しています。追加のglibcドキュメントでrlimits(=リソース制限)の説明が改善されました。
ulimit
次の2つのことができます。
非推奨となったPOSIX 7 C APIインターフェースgetrlimit()
:http : //pubs.opengroup.org/onlinepubs/9699919799/functions/ulimit.html
アプリケーションでは、廃止されたulimit()関数の代わりにgetrlimit()またはsetrlimit()関数を使用する必要があります。
これはそうではありませんでした sim
POSIX 6で回答され当てはまり。
GNU / Linuxでは、getrlimit()
とulimit()
して実装されているsys_getrlimit
システムコール。ありませんsys_ulimit
。
非推奨のPOSIX 7 CLIユーティリティ: http //pubs.opengroup.org/onlinepubs/9699919799/utilities/ulimit.html
ulimit()
またはのいずれかで実装できますgetrlimit()
。