通过shell命令提取文件内容(C实现)

一、需求说明   

    项目中需要提取/etc/fh_version文件中的软件版本号,该文件的内容如下:

[root@FiberHome]cat /etc/fh_version
FH_DEVICE_TYPE="LG522"
FH_SOFTWARE_VER="L04Y1.03M00"
FH_HARDWARE_VER="V1.0"
FH_OPERATOR=CM
    需要提取出上面文件中的软件版本号:L04Y1.03M00

二、shell命令实现

该内容可以通过下面的命令提取出来:

[root@FiberHome]cat /etc/fh_version | grep FH_SOFTWARE_VER | cut -d\" -f 2
L04Y1.03M00

三、C代码实现

void get_cmd_res(const char *cmd, char *res_string)
{   
	FILE *fp;    
	DEBUG_LOG("-----cmd:%s\n",cmd);   
	if ((fp = popen(cmd, "r")) == NULL) 
	{
		DEBUG_LOG("popen failed\n");
		return;
	}
	if (res_string != NULL)
	{
		fscanf(fp, "%s", res_string);
		DEBUG_LOG("read cmd result\n");
	}
	pclose(fp);    
	DEBUG_LOG("result:%s.\n",res_string);   

	return;
}

int main()
{
    char cmd[128]="cat /etc/fh_version | grep FH_SOFTWARE_VER | cut -d\\\" -f 2";
    char result_str[32]={0};

    get_cmd_res(cmd, result_str);
    return 0;
}



你可能感兴趣的:(c语言)