/***
writed by zhangxxxww
email:zhangxxxww@163.com
***/
char *strstr(const char *haystack, const char *needle);
/*返回在haystack中第一次出现needle的位置*/
/*
para:
buffer:要查找缓冲区的首地址
str:要查找的key
len:key对应的value的长度
return
value的首地址
example: key-value
port=123
*/
char* str_tail_what(const char* buffer, char *str, int *len)
{
char *port_prev = strstr(buffer,str);
if(NULL == port_prev){
printf("search error!\n");
return NULL;
}
char *port_end = NULL;
port_end = strchr(port_prev,'\n');
char *tt = strchr(port_prev,'=')+1;
*len = port_end-tt;
return tt;
}
/* 用途:将文件中key对一个的value保存到save中
para
filename: 文件名
mode:打开方式
str:查找的字符串key
save:
len:value长度
*/
void file_str_tail(const char* filename,char *mode,char *str,char *save, int *len)
{
long size=0;
FILE *fp = NULL;
char *buffer;
char *p=NULL;
fp = fopen(filename,mode);
if(NULL == fp)
{
printf("file open error\n");
exit(0);
}
fseek(fp,0,SEEK_END);
size = ftell(fp);
rewind(fp);
buffer=(char*)malloc(sizeof(char)*size);
if(NULL == buffer)
{
printf("mallc error");
return ;
}
memset(buffer,0,size);
int result=0;
result = fread(buffer,1,size,fp);
if(result != size)
printf("read error!\n");
p=str_tail_what(buffer,str,len);
memcpy(save,p,*len);
free(buffer);
fclose(fp);
}
文件中关键字后面是什么及长度
最新推荐文章于 2021-01-20 12:33:33 发布