LINUX.ORG.RU

glibc 2.3.2 - need error report


0

0

Вот такая программа:

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

int main() { FILE * file; char *str; char c; file = fopen("some_file","r"); str = (char*)calloc(sizeof(char),1); do { c = fgetc(file); sprintf(str,"%s%c",str,c); } while (c != '\n' && c != EOF); printf("\n String: %s",str); fclose(file); return 0; }

some_file - любой текстовый файл. она вызывает Segmentation Fault в системе Slackware 9.1 на строке fclose(file); Дистр поставлен, и напильником не обработан. gdb говорит что ошибка в glibc.so.6 (стоит 2.3.2)

Это вина девелопера glibc ? проверте ее на 9.1 - как у других бутет ли работать. Если ошибка - оправте отчет про ошибку.


С libc все в порядке в отличае от вашего кода ;)

>str = (char*)calloc(sizeof(char),1);

;)))

sS ★★★★★
()
Ответ на: комментарий от sS

str = (char*)calloc(sizeof(char),1)

а в чем собственно проблема ? программа ведь постепенно выделяет память под str функцией realloc ?

или, str перекрывает дескриптор file ?

anonymous
()
Ответ на: комментарий от anonymous

> программа ведь постепенно выделяет память под str функцией realloc ?

И где же этот realloc? И вообще не стоит так вызывать sprintf.

asso_w
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.