2025
01
18
2012
04
24
設定ファイルから特定パラメータを文字列で取得(C言語)
設定ファイルから設定を読み込むのに使います。
ソースコード
/* get_param.c */ #include <stdio.h> #include <string.h> #define STR_MAX 256 #define CONFIG_FILE "config.txt" void usage(void) { printf("usage: ./get_param [parameter_name]\n"); } int main(int argc, char *argv[]) { int i = 0, j = 0; char str[STR_MAX], param[STR_MAX]; FILE *fin; if (argc < 2) { usage(); return -2; /* operation miss */ } if ((fin = fopen(CONFIG_FILE, "r")) == NULL) { printf("fin error:[%s]\n", CONFIG_FILE); return -1; /* system error */ } for(;;) { if (fgets(str, STR_MAX, fin) == NULL) { /* EOF */ fclose(fin); return -3; /* not found keyword */ } if (!strncmp(str, argv[1], strlen(argv[1]))) { while (str[i++] != '=') { ; } while (str[i] != '\n') { param[j++] = str[i++]; } param[j] = '\0'; printf("param:[%s]\n", param); fclose(fin); return 0; } } fclose(fin); return -1; /* not reachable */ }
コンパイル例
gcc -Wall -o get_param get_param.c
使い方
./get_param [parametor_name]
使用例
# config.txt 中身 IP=192.168.1.14 PORT=11104 SDI_IN=enable ・ ・ ・
実行
nex2t@nex2t-svr$ ./get_param IP /home/nex2t param:[192.168.1.14] nex2t@nex2t-svr$ ./get_param PORT /home/nex2t param:[11104] nex2t@nex2t-svr$ ./get_param SDI_IN /home/nex2t param:[enable]
検索用タグ C言語
PR
2012/04/24 (Tue.) Comment(0) C言語
Comments