⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 config.c

📁 基于嵌入式linux下
💻 C
字号:
#include "inc.h"

//const char *Sys_ConfigFile= "/busonline/hda1/config/DispatchComm.ini";
//const char *Config_LockFile= "/busonline/hda1/config/DispatchComm.lock";
const char *Sys_ConfigFile= "/bus/config/DispatchComm.ini";
const char *Config_LockFile= "/bus/config/DispatchComm.lock";

SYMTAB	*Sysini=NULL;

void *IniLoad(char *Section,char *key,char *defaultval)
{
	int	fd;
	//rdlock here
	if((fd = open(Config_LockFile,O_RDWR|O_CREAT,S_IRWXU)) < 0)
	{
		perror("error!\r\n");
		return ;
	}
	write(fd,"1",1);
	LockFile(fd,F_RDLCK);
	Sysini = ini_dyn_load(Sysini,Sys_ConfigFile);
	//unlock here
	LockFile(fd,F_UNLCK);
	close(fd);
	
	if(Sysini!=NULL)
	{
		return (ini_dyn_value(Sysini,Section,key,defaultval));
//		printf("keyword1 = %s!\r\n",ptr);
	}
}

void IniSave(char *Section,char *Key,char *Value)
{
	SYMBOL *symbol;
	char	ini_keyword[256];
	int fd;

	ASSERT(Section);
	if(Key && *Key)
		snprintf(ini_keyword,sizeof(ini_keyword),"%s:%s",Section,Key);
	else
		strncpy(ini_keyword,Section,sizeof(ini_keyword));
	strlwc(ini_keyword);

	Sysini = ini_dyn_load(Sysini,Sys_ConfigFile);
	ASSERT(Sysini);
	symbol = sym_lookup_symbol(Sysini,ini_keyword);
	if (symbol)
	{
		sym_set_value (symbol, Value);
	}
	else		//creat one
	{
		symbol = sym_create_symbol (Sysini, ini_keyword, Value);
	}
//wrlock ini file
	if((fd = open(Config_LockFile,O_RDWR|O_CREAT,S_IRWXU)) < 0)
	{
		perror("error!\r\n");
		return ;
	}
	write(fd,"1",1);
	LockFile(fd,F_WRLCK);
	ini_dyn_save(Sysini,Sys_ConfigFile);
//unlock ini file
	LockFile(fd,F_UNLCK);
	close(fd);
}

⌨️ 快捷键说明

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