Некоторая программа открывает файл, в котором имеються записи , причем
каждая запись находиться на одной строке и состоит только из одного слова.
Затем считывает по очереди каждую, обрабатывает ее и помещает рузельтат
обраьотки в другой файл. Вот текст программы:if ((list=fopen(in_file, "r")) == NULL)
perror(in_file);
while (fgets(out, 100, list) != NULL) {
log=fopen(out_file, "a");
...
обработка;
запись в поток log
...Все рботает нормально, но если подать слишком большой входной файл (200 Kb) то
программа завершается с Segmentation fault
я бы попробовал поставить O_SYNC на оба файла (для начала).
А дальше - по обстоятельствам...
poprobuy ispolzovat open,read,write
Выходной файл открывается на каждом проходе по циклу, а закрывается ли? Если нет, то дескрипторы кончатся, fopen() вернет NULL, если проверки на него нет, как раз Segmentation fault и получится.А вообще в таких случаях часто помогает gdb.
Я все понял, проблема была в том что я объявил масив out как out[50] а в программе fgets(out, 100, list) - 100!