关闭

嵌入式 popen获取文件中指定变量的值

535人阅读 评论(0) 收藏 举报
分类:
popen获取文件中指定变量的值:
 
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>

#ifdef __DEBUG__
    #define msg_print(...) printf(__VA_ARGS__)
#else
    #define msg_print(...)
#endif

#define CONF_FILE_PATH "."
#define MAX_VALUE_LEN 32

int joseph_read_conf(const char *key, char *value);

int joseph_read_conf(const char *key, char *value)
{
    FILE *stream = NULL;
    char cmd[64] = {0};

    if(NULL == key || 0 == strlen(key)){
    	msg_print("invalid parameter!\n");
	return -1;
    }

    sprintf(cmd, "cat %s/ipnc_conf.conf | awk '/%s/{print $2}'",\
	    CONF_FILE_PATH, key);
    msg_print("cmd = %s\n", cmd);

    stream = popen(cmd,"r");

    if(fread(value, sizeof(char), MAX_VALUE_LEN, stream) <= 0){
    	pclose(stream);
	return -1;
    }
    strcpy(value + strlen(value) - 1, "\0");
    msg_print("value = %s\n",value);
    pclose(stream);
}

int main(int argc,char *argv[])
{
    char value[32] = {0};
    joseph_read_conf(argv[1], value);

    printf("value = %s\n",value);
    return 0;
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1038889次
    • 积分:18198
    • 等级:
    • 排名:第521名
    • 原创:741篇
    • 转载:522篇
    • 译文:0篇
    • 评论:105条
    最新评论