C++ 在Linux C+;中获取虚拟内存最大映射计数+;

C++ 在Linux C+;中获取虚拟内存最大映射计数+;,c++,linux,memory,virtual,sysctl,C++,Linux,Memory,Virtual,Sysctl,如何使用C获取“sysctl vm.max\u map\u count”或“/proc/sys/vm/max\u map\u count”++ 我不想打开/proc/sys文件。。 是否调用以获取号码?此sysctl命令将返回一个键值对 sysctl -q vm.max_map_count vm.max_map_count = xxxxxx sysctl -e -q vm.max_map_count vm.max_map_count = xxxxxx sysctl -e -q vm.max_

如何使用C获取“sysctl vm.max\u map\u count”或“/proc/sys/vm/max\u map\u count”++

我不想打开/proc/sys文件。。
是否调用以获取号码?

此sysctl命令将返回一个键值对

sysctl -q vm.max_map_count
vm.max_map_count = xxxxxx
sysctl -e -q vm.max_map_count
vm.max_map_count = xxxxxx
sysctl -e -q vm.max_map_count
vm.max_map_count = xxxxxx
sysctl -n -e -q vm.max_map_count
xxxxxx

此sysctl命令将返回相同的键值对

sysctl -q vm.max_map_count
vm.max_map_count = xxxxxx
sysctl -e -q vm.max_map_count
vm.max_map_count = xxxxxx
sysctl -e -q vm.max_map_count
vm.max_map_count = xxxxxx
sysctl -n -e -q vm.max_map_count
xxxxxx

此sysctl命令将返回相同的键值对

sysctl -q vm.max_map_count
vm.max_map_count = xxxxxx
sysctl -e -q vm.max_map_count
vm.max_map_count = xxxxxx
sysctl -e -q vm.max_map_count
vm.max_map_count = xxxxxx
sysctl -n -e -q vm.max_map_count
xxxxxx

此sysctl命令将返回相同的键值对

sysctl -q vm.max_map_count
vm.max_map_count = xxxxxx
sysctl -e -q vm.max_map_count
vm.max_map_count = xxxxxx
sysctl -e -q vm.max_map_count
vm.max_map_count = xxxxxx
sysctl -n -e -q vm.max_map_count
xxxxxx
这是你的答案。但是,我宁愿将/proc/sys/vm/max\u map\u count作为一个文件打开,并从C程序中读取执行进程时的值。在bash脚本中调用sysctl来设置变量更有意义

vmval=`sysctl -n -e -q vm.max_map_count`
echo $vmval
xxxxxx

我不想打开/proc/sys文件
为什么?@SingerOfTheFall我已经使用了sysctl和其他libc.so.6调用而没有打开/proc文件,我想保持这种方式。你是否尝试了
sysctl
系统调用?@Simon Kraemer-我能够使用sysctl从bash设置新的最大映射计数,但是当我:'strace-v sysctl-w vm.max\u map\u count=12345'时,sysctl命令对我来说没有意义。那么你的问题是什么?sysctl命令不使用sysctl函数?我真的不明白你的问题。请更新您的问题描述,以便我们知道您迄今为止尝试了什么以及在哪里遇到问题。嗨,也许我的问题不清楚。我的意思是-如何通过API以编程方式获取这些值。在我的例子中,使用bash脚本作为强制执行要求不是一个选项。