国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁(yè) > 編程 > C > 正文

C語(yǔ)言實(shí)現(xiàn)添加和讀取配置文件函數(shù)的操作方法

2020-02-24 14:31:14
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

通常由函數(shù)傳遞的參數(shù)具有配置文件的路徑,但是對(duì)于小編而言,我認(rèn)為在某些情況下,參數(shù)流入更加重要,讀取、添加、刪除和修改配置文件的功能都是基于流程參數(shù)實(shí)現(xiàn)的。
"oper_config.h"

?

#ifndef OPER_CONFIG_H_
#define OPER_CONFIG_H_
#define MAX_LINE_LEN 210
char *read_config(FILE *fp, char *key);
int add_config(FILE *fp, char *key, char *value);
#endif


"oper_config.c"

?

?

?


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "oper_config.h"
static int check_key(char *line, char *key);
static char *get_value(char *line);
// fp 需要以讀的方式得到
char *
read_config(FILE *fp, char *key)
{
?char line[MAX_LINE_LEN] = {'/0'};
?char *value = NULL;
?int ret;
?while(fgets( line, sizeof(line), fp) != NULL)
?{
??ret = check_key(line, key);
??if(ret == -1)
??{
???continue;
??}
??else
??{
???value = get_value(line);
???if(value == NULL)
???{
????del_config(fp, key);
????return NULL;
???}
???else
???{
????return value;
???}
??}
?}/* while */
?return NULL;
}
static int
check_key(char *line, char *key)
{
?char *k_start, *k_end;??// 指示 key 在 line 中的起始和結(jié)束位置
?int line_len;
?line_len = strlen(line);
?if(line_len < 3)
?{
??return(-1);
?}
?else
?{
??k_start = &line[0];
??while(((*k_start == ' ') || (*k_start == '/t'))
????&& ( k_start <= &line[line_len - 1]))
??{
???k_start ++;
??}
??if(*k_start == '#')
??{
???return(-1);
??}
??k_end = strchr(line, '=');
??if(k_end == NULL)
??{
???return(-1);
??}
??k_end --;
??while(((*k_end == ' ') || (*k_end == '/t'))
????&& (k_end >= k_start))
??{
???k_end --;
??}
??if((*k_end == ' ') || (*k_end == '/t'))
??{
???return(-1);
??}
??if(strncmp(key, k_start, k_end-k_start + 1) != 0)
??{
???return(-1);
??}
?}
?return(0);
}/* check_key() */
static char*
get_value(char *line)
{
?char *v_start, *v_end;??// 指示 value 在 line 中的起始和結(jié)束位置
?char *value = NULL;
?int line_len;
?int val_len;
?line_len = strlen(line);
?v_start = strchr(line, '=');?// 已經(jīng)在 check_key 中檢驗(yàn)過(guò)'='的存在
?v_start ++;
?while(((*v_start == ' ') || (*v_start == '/t'))
???&& (v_start <= &line[line_len - 1]))
?{
??v_start ++;
?}
?v_end = &line[line_len - 1];
?if(((*v_end == ' ') || (*v_end == '/t')
???|| (*v_end == '/n')
???|| (*v_end == '/r'))
???&& (v_end > v_start))
?{
??v_end --;
?}
?if((*v_end == ' ') || (*v_end == '/t')
???|| (*v_end == '/n')
???|| (*v_end == '/r'))
?{
??return NULL;
?}
?val_len = v_end - v_start + 1;
?value = (char *)malloc((val_len + 1) * sizeof(char));
?if(value == NULL)
?{
??printf("malloc failed./n");
??return NULL;
?}
?strncpy(value, v_start, val_len);
?value[val_len] = '/0';
?return value;
}/* get_value() */
// fp 需要以添加的方式得到
int
add_config(FILE *fp, char *key, char *value)
{
?char *line = NULL;
?int key_len;
?int val_len;
?key_len = strlen(key);
?val_len = strlen(value);

?if( (fp == NULL) || (key == NULL) || (value == NULL))
?{
??return(-1);
?}
?line = (char *)malloc((key_len + val_len + 5) * sizeof(char));
?if(line == NULL)
?{
??printf("malloc failed./n");
??return(-1);
?}
?else
?{
??strncpy(line, key, key_len);
??line[key_len] = ' ';
??line[key_len + 1] = '=';
??line[key_len + 2] = ' ';
??line[key_len + 3] = '/0';
??strncat(line, value, val_len);
??line[key_len + val_len + 3] = '/n';
??line[key_len + val_len + 4] = '/0';
??if(fputs(line, fp) == EOF)
??{
???return(-1);
??}
?}
?free(line);
?return(0);
}/* add_config() */
?


說(shuō)明:
1)?配置文件的數(shù)據(jù)格式? key = value
2) 支持 '#' 開(kāi)頭注釋
3) key, value 前后可有空格, tab.

以上就是武林技術(shù)頻道小編給大家述說(shuō)的C語(yǔ)言實(shí)現(xiàn)添加和讀取配置文件函數(shù)的操作方法,如果有筒靴們感興趣,可以多多關(guān)注武林技術(shù)頻道學(xué)習(xí)更多的知識(shí)。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产视频你懂的| 国产永久免费高清在线观看| 久艹在线视频| 开心丁香婷婷深爱五月| 麻豆精品免费视频入口| 国产真实伦在线观看| 中中文字幕av在线| 国产精品黄页网站在线播放免费| 国产黄色免费网| www.eeuss影院| 日韩黄色成人| 好看的中文字幕在线播放| 高潮毛片在线观看| 国产网站观看9久| 日韩精品免费一区二区| 日本中文字幕在线看| 在线黄色.com| 中文字幕在线免费| 本道综合精品| 国产91在线视频蝌蚪| 爱福利在线视频| 国产视频福利| 欧美成人久久电影香蕉| 精品一区二区91| 天天av天天爱| 亚洲欧洲成人| 国产网站av| 国产久草在线| v天堂福利视频在线观看| 国产一区二区三区美女秒播| 四虎一区二区三区| 91麻豆精品国产91久久| 国产亚洲精品拍拍拍拍拍| 日本一二三区视频免费高清| 国产女主播在线| 国产永久免费高清在线观看视频| 精品国产一区二区三区四区阿崩| 国产一区二区影视| 午夜不卡视频| 国产中文字幕在线观看| 在线国产一区二区三区| 五月综合网站| 黄色国产网站在线播放| 九九热视频在线观看| 国产污污在线观看| 91欧美在线视频| 国产精品国产国产aⅴ| 最好看更新中文字幕| 国产天堂av| 国产精品合集一区二区 | 轻轻色免费在线视频| 91欧洲在线视精品在亚洲| 国产色a在线| 激情四房婷婷| 午夜国产在线| 国产成人久久精品77777| 在线久久视频| 免费不卡中文字幕视频| 91xxx在线观看| 91蜜桃在线视频| 美女永久在线网站| 中文字幕在线看精品乱码| 国产黄色免费网| v天堂福利视频在线观看| 九九热视频在线| 国产高清av| 午夜影院免费看| 国产精品一卡二卡三卡| 国产精品178页| а√天堂www在线а√天堂视频| 黄色av免费在线| 国产夫妻视频| 超碰在线人人| 精品国产一区二区三区久久久狼牙 | 精精国产xxxx视频在线中文版| 国产成人精品久久一区二区小说| av人人综合网| 成人无遮挡免费网站视频在线观看| 国产精品入口麻豆完整版| 精品成人一区二区三区免费视频| 青青免费在线视频| 69视频在线观看| 天天av综合网| 麻豆国产视频| 夜夜操天天干| 91欧美在线视频| 国产性一级片| 国产麻豆精品入口在线观看| 国产a国产a国产a| 国产嫩草在线视频| www久久日com| www.xxx黄| 一区二区三区免费视频网站| 国产区在线看| 国产网站免费看| 中文字幕网在线| 最近久乱中文字幕| 国产精品亚洲色图| 超碰在线观看免费版| 亚洲精品午夜级久久久久| 在线一区二区三区精品| 激情综合网五月激情| 免费a在线看| 轻轻色免费在线视频| 中文在线视频| av首页在线| www.av在线播放| www.99色.com| 日本不卡视频一区二区| 免费电影网站在线视频观看福利| 日本视频在线| 国产中文字幕av| √天堂中文在线| 国产视频1区| 91亚洲欧美| jizz国产| 中文字幕在线第一页| 18成年在线观看| 夜夜爽视频导航| 欧美日韩**字幕一区| 国产一区二区三区不卡免费观看 | 高清在线观看av| 中中文字幕av在线| a√在线视频| 超碰在线国产| 国产精品美女视频免费观看软件 | 黄色片大全在线观看| 丁香花在线电影小说观看| 激情综合丁香| 国产高清视频在线播放| 四虎在线免费视频| 国产婷婷视频在线| 亚洲日本伊人| 国产区高清在线| 毛片在线视频| av免费在线免费| 国产视频97| 福利在线视频导航| 在线视频三区| 国产九色porn网址| gogo在线高清视频| 2018狠狠干| 最近中文av字幕在线中文| 青娱乐在线视频观看| 国产黄色在线播放| 国产裸舞福利在线视频合集| 99久久99热久久精品免费看| 国产美女免费观看| 欧美日韩一区二区三区在线播放| 国产丝袜自拍| 国产精品综合久久久久| www.xxx黄| av在线首页| eeuss影院www在线观看| 国产高清av| 国产黄色在线观看| 中文字幕亚洲免费| 国产精品你懂的在线观看| 中文字幕在线免费| 天堂在线中文资源| 成在在线免费视频| 黄网站在线观看高清免费| 欧洲亚洲精品视频| а天堂8中文最新版在线官网| 伊人春色在线| h网站久久久| 九九热免费视频| 国产免费网址| 国产美女被遭强高潮免费网站| 亚洲人成影院在线| 欧美96在线| 天堂资源在线中文| 国产精品视频流白浆免费视频| 国产特级淫片免费看| 国产精品被窝福利一区| 国产成人精品久久一区二区小说| 国产高清av| 欧美日韩国产亚洲沙发| 丁香花视频在线观看| 国产欧美一区二区三区小说| 精品99又大又爽又硬少妇毛片| 精品麻豆视频| 非洲黑人最猛性xxxx交| 国产精品视频一区二区免费不卡 | aaa大片在线观看| av在线中文| 2018av男人天堂| 在线视频婷婷| 天堂资源最新版在线视频观看免费网| 国产一级电影网| av手机免费在线观看| 国自产拍在线网站网址视频| 国产精品臀控福利在线观看| 国产成人精品综合网站| 免费av不卡在线观看| 91中文在线| 国产视频青青| 久草.com| 四虎成人欧美精品在永久在线| 中文字幕毛片|