Linux rlimit 进程可用资源控制

2019-10-23  本文已影响0人  阿群1986
#include <stdio.h>
#include <unistd.h>
#include <sys/utsname.h> // uname()
#include <sys/resource.h> // getrlimt(), setrlimit()

int main(void)
{
    // linux version
    struct utsname  uname_out;
    uname(&uname_out);
    printf("Linux version = %s\n", uname_out.release);

    // 内存限制 rlimit
    struct rlimit rlim = {RLIM_INFINITY, RLIM_INFINITY};
    /* Allow unlimited locking of memory, so all memory needed for packet
     * buffers can be locked.
     */
    if (0 != setrlimit(RLIMIT_MEMLOCK, &rlim)) {
        fprintf(stderr, "ERROR: setrlimit(RLIMIT_MEMLOCK) \"%s\"\n", strerror(errno));
        exit(EXIT_FAILURE);
    }



    
    rlim.rlim_cur = 0;
    rlim.rlim_max = 0;
    getrlimit(RLIMIT_MEMLOCK, &rlim);
    printf("rlim.rlim_cur=0x%lx\n", (long)rlim.rlim_cur);
    printf("rlim.rlim_max=0x%lx\n", (long)rlim.rlim_max);
    printf("RLIM_INFINITY=0x%lx\n", (long)RLIM_INFINITY);
    fflush(stdout);

    return 0;
}
上一篇 下一篇

猜你喜欢

热点阅读