当前位置: 技术问答>linux和unix
linux /proc 的问题。以及获取子进程虚拟内存信息。
来源: 互联网 发布时间:2016-08-08
本文导语: 通过cat /proc/pid/stat能显示出来很多信息 中间有个是虚拟内存单位是字节,比如 /proc/12493/stat : 12493 (java) S 12491 12491 12237 0 -1 0 2784 0 1 0 3 2 0 0 19 0 9 0 219044359 864018432 2288 996147200 134512640 134550740 42949560...
通过cat /proc/pid/stat能显示出来很多信息 中间有个是虚拟内存单位是字节,比如
/proc/12493/stat : 12493 (java) S 12491 12491 12237 0 -1 0 2784 0 1 0 3 2 0 0 19 0 9 0 219044359 864018432 2288 996147200 134512640 134550740 4294956016 18446744073709551615 4294960144 0 0 0 16800975 18446744073709551615 0 0 17 0 0 0
Current children cumulated vsize (byte) 864018432
我想知道他是如何取得这个虚拟内存864018432的,通过C程序如何把这个数取出来单独输出。
/proc/12493/stat : 12493 (java) S 12491 12491 12237 0 -1 0 2784 0 1 0 3 2 0 0 19 0 9 0 219044359 864018432 2288 996147200 134512640 134550740 4294956016 18446744073709551615 4294960144 0 0 0 16800975 18446744073709551615 0 0 17 0 0 0
Current children cumulated vsize (byte) 864018432
我想知道他是如何取得这个虚拟内存864018432的,通过C程序如何把这个数取出来单独输出。
|
proc文件数据获取和输出是在内核层实现的。想要取得这个数值不需要care,他怎么获取的。他内核也就是里面的一个变量。
获取它和普通文件读写是一样的。采用open、read、close这些系统调用,然后对获取的数据进行解析就好。
获取它和普通文件读写是一样的。采用open、read、close这些系统调用,然后对获取的数据进行解析就好。