📄 gsyscnf.c
字号:
/* *---------------------------------------------------------------------- * 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -