Всем трям.
У мну проблема. Есть функция, которая (по замыслу, по крайней мере :)) ) возвращает значение ключа из ini файла. Возвращает, ессно, как строку.
Но... Глюк в следующем: если в ключе только цифры, то все ок. Если же в ключе появляються буквы, то функция возвращает черт знает что.Куда копать?
Сама функция вот:
5 gchar *read_conf_value(FILE *fp, gchar *section, gchar *key)
6 {
7 char str_s[50];
8 char str_k[100];
9 char *p = NULL;
10 static char rez[100];
11 size_t len_sect;
12 size_t len_key;
13
14 len_sect = strlen(section);
15 len_key = strlen(key);
16
17 rewind(fp);
18
19 while (!feof(fp))
20 {
21 if ((fgets(str_s,50,fp)) && (!strncmp(str_s,section,len_sect)))
22 {
23 while (!feof(fp))
24 {
25 if ((fgets(str_k,100,fp)) && (!strncmp(str_k,key,len_key)))
26 {
27 p = strtok(str_k,key);
28 strcpy(rez,p);
29 #ifdef DEBUG
30 add_log(p,"info_tag");
31 #endif
32 return rez;
33 }
34 }
35 }
36 }
37 return rez;
38 }
Может быть вообще не находит и выдаёт мусор?
Мог бы для начала проинициализировать, перед поиском, rez
Ну, типа, *rez = '\0';
>Может быть вообще не находит и выдаёт мусор?
>Мог бы для начала проинициализировать, перед поиском, rez
>Ну, типа, *rez = '\0';Может, я в си и чайник, но на идиота не похож.
Если я написал, что числа возвращаются нормально, а строки нет, то так и есть.
Ok, etot strtok() call - chto nahoditsya v key? Esche, esli strtok vozvratit NULL, chto budet togda?
>>Может быть вообще не находит и выдаёт мусор?
>>Мог бы для начала проинициализировать, перед поиском, rez
>>Ну, типа, *rez = '\0';
>
>Может, я в си и чайник, но на идиота не похож.
>Если я написал, что числа возвращаются нормально, а строки нет, то так
>и есть.
Да не надо так нервничать, Просто ты не обрабатываешь исключительные ситуации.
Вот я и предположил, что возможно дело вней (люди не боги, могут и опечататься).Ну и впринципе, правильней всё таки, пользоваться переменными проинициализировав их.
PS Ну, и если тебе не нравятся мои советы, я не заставляю ими пользоваться, просто проигнорируй.
>Да не надо так нервничать, Просто ты не обрабатываешь исключительные ситуации.
>Вот я и предположил, что возможно дело вней (люди не боги, могут
>и опечататься).
>
>Ну и впринципе, правильней всё таки, пользоваться переменными проинициализировав их.
>
>PS Ну, и если тебе не нравятся мои советы, я не заставляю
>ими пользоваться, просто проигнорируй.Извини. Погорячился.
Задачка решена.
Кому интересно - http://clubpro.spb.ru/ubb/Forum14/HTML/001019.html