#include <stdio.h>
#include <unistd.h>
#include <string.h>
#define MAX_FILE_SIZE 1024*10
#define LEFT_BRACE '['
#define RIGHT_BRACE ']'
#define EQUAL '='
#define LINEEND '\n'
/* 查找出关键字的位置和长度
* strFileName: 文件名,包括其路径
* strSection : 关键段
* strKey : 关键字
* iOffset : 要查找的关键字对应内容的位置
* iLen : 要查找的关键字对应内容的长度
* 成功返回0, 失败返回-1
*/
int FindValuePos(char *strFileName, char *strSection, char *strKey, int *iOffset, int *iLen)
{
char strFileBuf[MAX_FILE_SIZE + 1] = "\0";
FILE *frp = NULL;
int iFileSize = 0;
int iPosition = 0;
int iReadCount = 0;
int iRet = 0;
char *tmpstring = NULL;
int itmpLen = 0;
if(NULL == strFileName || NULL == strSection || NULL == strKey)
{
printf("param is empty!\n");
return -1;
}
if(-1 == access(strFileName, F_OK | R_OK))
{
return -1;
}
frp = fopen(strFileName, "rb");
if(NULL == frp)
{
printf("fopen fail\n");
return -1;
}
fseek(frp, 0L, SEEK_END);
iFileSize = ftell(frp);
fseek(frp, 0L, SEEK_SET);
memset(strFileBuf, 0, iFileSize + 1);
while(iReadCount < iFileSize)
{
iRet = fread(strFileBuf + iReadCount, sizeof(unsigned char), iFileSize - iRead