如何获取正在运行的进程可以打开的最大文件描述符?
如题,如何能够获取一个正在运行进程的最大文件描述符个数啊?
说如何获取当前用户可以打开的文件描述符个数$ulimit -n,这个我知道。
但是每个进程是可以单独设置自己的最大文件描述符个数的,请问如何获取?
谢谢。
------解决方案--------------------
/**
* @file rlimit.c
* @brief
*/
#include <stdio.h>
#include <sys/types.h>
#include <sys/time.h>
#include <sys/resource.h>
int main(int argc, char *argv[])
{
struct rlimit rlim;
getrlimit(RLIMIT_NOFILE, &rlim);
printf("rmim_cur=%d rlim_max=%d\n", (int)rlim.rlim_cur, (int)rlim.rlim_max);
return 0;
}
------解决方案--------------------你这个是什么需求呀?
可以深入内核获取,写个KLM内核模块(insmod加载)检查指定进程的struct tast_struct中的某个字段,然后用netlink将得到的结果传给上层的应用。 因为你这个是获取别的进程的此时的软限制,好像没啥命令能查看别人的吧。查看自己进程的软限制到是可以用getrlimit..... 只能深入内核了。
看楼下知不知道有什么命令可以获得某个进程的软限制。