gsyscnf.c

来自「嵌入式操作系统T-Kernel 完整代码」· C语言 代码 · 共 82 行

C
82
字号
/* *---------------------------------------------------------------------- *    T-Kernel * *    Copyright (C) 2004 by Ken Sakamura. All rights reserved. *    T-Kernel is distributed under the T-License. *---------------------------------------------------------------------- * *    Version:   1.01.00 *    Released by T-Engine Forum(http://www.t-engine.org) at 2004/6/28. * *---------------------------------------------------------------------- *//* *      gsyscnf.c (sysinit) *      SYSCONF access utilities */#include "sysinit.h"#include <sys/util.h>#include <sys/sysinfo.h>#include <libstr.h>#define	SysConfPtr	(SCInfo.sysconf)LOCAL	B	*SearchSysConf(B *name){	W	len;	B	*p;	len = strlen(name);	if (len > 0) {		if (len > 16) len = 16;		for (p = SysConfPtr; *p; ) {			if (*p > ' ' && *p != '#' && memcmp(name, p, len) == 0)						return p;			while (*p && *p++ != '\n');		}	}	return	(B*)NULL;}LOCAL	B	*SkipNext(B *p){	for (; *p > ' ' && *p != '#'; p++);	for ( ; ; p++) {		if (*p == '\0' || *p == '\n' || *p == '#') return (B*)NULL;		if (*p > ' ') break;	}	return p;}EXPORT	W	GetSysConf(B *name, W *val){	W	cnt = 0;	B	*p;	if ( (p = SearchSysConf(name)) != NULL ) {		for ( ; (p = SkipNext(p)) && cnt < L_SYSCONF_VAL; cnt++) {			*val++ = (W)strtol(p, &p, 0);		}	}	return cnt;}EXPORT	W	GetSysConfStr(B *name, B *str){	B	*p;	B	*d = str;	if ( (p = SearchSysConf(name)) != NULL ) {		if ( (p = SkipNext(p)) != NULL ) {			while (*p && *p != '\n' && *p != '#') {				*d++ = *p++;				if (d - str >= L_SYSCONF_STR - 1) break;			}		}	}	*d = 0;	return d - str;}

⌨️ 快捷键说明

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