源代码如下:
#include <stdio.h>
#include <fcntl.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
int get_buf_data(char *buf,char *data)
{
char *p1 =NULL,* p2=NULL;
int num =0;
p1 = buf;
p2 = strstr(p1,data);
if(p2 == NULL)
{
printf("%s no find %s --- %s\r\n",__FUNCTION__ ,buf,data);
return 0;
}
p1 = p2+strlen(data);
num = atoi(p1);
return num;
}
int main(void)
{
int fd = -1 ;
char buf[1024];
fd = open("build_mtk8127eng.sh",O_RDWR);
if(-1 == fd)
{
printf("open fair!\n");
return -1 ;
}
memset(buf,0,sizeof(buf));
read(fd,buf,1024);
close(fd);
int num = get_buf_data(buf,"student_num:");
printf("num:%d\n",num);
return 0 ;
}
运行结果:1000
对应的文件:
money_num:100
student_num:1000
work:12000
这里主要是要熟悉strstr这个函数,这个是字符串的查找函数,上面这个API就是首先返回查找到对应子串的首地址,然后返回给一个指针接受,后面用另一个指针加上获得刚刚返回子串地址的偏移到达这个子串的首地址,再利用strlen计算这个子串的长度再与首地址相加即得到下一个串,再利用atoi将该串转化为整型。