2025
11
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
