Linuxのulimitとrlimitは同じものですか?


回答:


12

混乱は、ulimitがラップする基礎となるシステムコールがsetrlimitと呼ばれるという事実に起因すると思います

ulimitのmanページからの抜粋

ulimit()関数はプロセス制限を制御します。この関数で制御できるプロセスの制限には、書き込み可能な単一ファイルの最大サイズが含まれます(これは、RLIMIT_FSIZEでsetrlimit()を使用するのと同等です)。

さらに、setrlimitmanページを見ると、制限情報を含む基礎となるデータ構造が呼び出され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) */
};

参照資料



0

ulimit 次の2つのことができます。

  • 非推奨となったPOSIX 7 C APIインターフェースgetrlimit()http : //pubs.opengroup.org/onlinepubs/9699919799/functions/ulimit.html

    アプリケーションでは、廃止されたulimit()関数の代わりにgetrlimit()またはsetrlimit()関数を使用する必要があります。

    これはそうではありませんでした simPOSIX 6で回答され当てはまり。

    GNU / Linuxでは、getrlimit()ulimit()して実装されているsys_getrlimitシステムコール。ありませんsys_ulimit

  • 非推奨のPOSIX 7 CLIユーティリティ: http //pubs.opengroup.org/onlinepubs/9699919799/utilities/ulimit.html

    ulimit()またはのいずれかで実装できますgetrlimit()

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.