我检查了手册页和文档,但他们只讨论了命令行调用.我在谈论C函数.关于它的两个问题:
> C中sysctl()的参数是什么? (我只想要一位将军
描述每个参数是什么以及它用于什么)
> sysctl()调用在Mac OS X Lion中仍然有效吗?
我使用Xcode 3.2.6在Mac OS X Snow Leopard上
解决方法
好吧,引用
this page,假设它有原型:
int sysctl (int *name,int nlen,void *oldval,size_t *oldlenp,void *newval,size_t newlen);
然后它的参数如下:
>名字 – >指向整数数组:每个整数值标识一个sysctl项,即目录或叶节点文件.这些值的符号名称在< linux / sysctl.h>中定义.
> nlen – >说明数组名称中列出了多少个整数:要达到指定通过子目录的路径所需的特定条目,因此需要告知此类路径的长度.
> oldval – >是指向数据缓冲区的指针,其中必须存储sysctl项的旧值.如果为NULL,则系统调用不会将值返回给用户空间.
> oldlenp – >指向表示oldval缓冲区长度的整数.系统调用会更改该值以反映已写入的数据量,该值可能小于缓冲区长度.
> newval – >指向托管替换数据的数据缓冲区:内核将读取此缓冲区以更改正在执行的sysctl条目.如果为NULL,则不更改内核值.
> newlen – >是newval的长度.内核将只读取newval中的newlen字节.
我建议你阅读整个page,因为它提供了更广泛的细节.至于它在Mac OS X Lion中有效,我不确定,但我想.
希望我帮忙!