sysctlbyname.c

来自「基于组件方式开发操作系统的OSKIT源代码」· C语言 代码 · 共 38 行

C
38
字号
/* * ---------------------------------------------------------------------------- * "THE BEER-WARE LICENSE" (Revision 42): * <phk@FreeBSD.org> wrote this file.  As long as you retain this notice you * can do whatever you want with this stuff. If we meet some day, and you think * this stuff is worth it, you can buy me a beer in return.   Poul-Henning Kamp * ---------------------------------------------------------------------------- * * $Id: sysctlbyname.c,v 1.3 1998/03/09 04:34:16 jb Exp $ * */#include <sys/types.h>#include <sys/sysctl.h>#include <string.h>intsysctlbyname(const char *name, void *oldp, size_t *oldlenp, void *newp,	     size_t newlen){	int name2oid_oid[2];	int real_oid[CTL_MAXNAME+2];	int error;	size_t oidlen;	name2oid_oid[0] = 0;	/* This is magic & undocumented! */	name2oid_oid[1] = 3;	oidlen = sizeof(real_oid);	error = sysctl(name2oid_oid, 2, real_oid, &oidlen, (void *)name,		       strlen(name));	if (error < 0) 		return error;	oidlen /= sizeof (int);	error = sysctl(real_oid, oidlen, oldp, oldlenp, newp, newlen);	return (error);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?