GETRLIMIT と ulimit

いろいろなシステム的制限を取得するのに使う。
(そのユーザの)プロセス数の最大を得るための例(超手抜き)

#include 
#include 
#include 

main(){
    /* see Man of getrlimit */
    struct rlimit rlim;
    getrlimit(RLIMIT_NPROC, &rlim);

    printf("Soft LIMIT-> %d\n", rlim.rlim_cur);
    printf("Hard LIMIT-> %d\n", rlim.rlim_max);
    return;
}

うちのRHL7.3ではどっちも4095と出た。どこからやってきてる数値なのかはわからん…。
が、実際forkぼこぼこするやつを走らせたら、そのくらいでfork出来なくなった。
違うユーザで同じforkプログラムを走らせると、やっぱりそのくらいで限界がきた。


追記:
【ulimit -a】コマンドでいけるみたいだ…そうなのねん…orz

[]$ ulimit -a
core file size        (blocks, -c) 0
data seg size         (kbytes, -d) unlimited
file size             (blocks, -f) unlimited
max locked memory     (kbytes, -l) unlimited
max memory size       (kbytes, -m) unlimited
open files                    (-n) 1024
pipe size          (512 bytes, -p) 8
stack size            (kbytes, -s) 8192
cpu time             (seconds, -t) unlimited
max user processes            (-u) 4095
virtual memory        (kbytes, -v) unlimited