Archive for julho, 2008

Pegando valores de um arquivo com C

julho 31, 2008

Abaixo eu criei um código simples de como ler os valores definidos em alguns macros. Isso é util se seu programa precisa pegar dados em um arquivo de configuração.

exemplo.txt

variavel_um=ola

ler_valores.c

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define _GNU_SOURCE

int main (void) {
FILE *fp=NULL;
char *variavel=NULL;
char *valor=NULL;
char *tmp_ptr=NULL;

size_t len=100;

char *line = malloc(len);

fp=fopen(“exemplo.txt”,”r”);

if(fp==NULL){
printf(“Não consegui ler o arquivo\n”);
exit(EXIT_FAILURE);
}

while(getline(&line,&len,fp)>0) {
tmp_ptr=strtok(line,”=”);
variavel=(char *)strdup(tmp_ptr);

if(!strcmp(variavel,”variavel_um”)) {
tmp_ptr=strtok(NULL,”\n”);
valor=(char *)strdup(tmp_ptr);

printf(“Valor: %s\n”,valor);
}

}

if(line)
free(line);

}

Para compilar : gcc -o ler_valores ler_valores.c