23 июля 2010 г. 14:58 пользователь Peter Pentchev <r...@ringlet.net> написал:
> Думаю, вопрос Дениса бил "как точно парсятся". Если делается fscanf() > (или sscanf() или вообще *scanf()) или strtod()/strtol(), проверяется > ли заранее, строка пуста ли? Если такой проверки нет и по какой-то > причине wget выдаст празный файл, то *scanf() и strto*() выпарсят > с него один нуль. > > Проверьте каким-то образом, wget не выдает ли 0-length files - или > допишите програму чтоб проверяла, не пустая ли строка прежде чем парсить. > > Всего лучшего, > Петр Спасибо за ответ Петр. Наверное это моя проблема, не смог внятно объяснить. Да и сам по ходу разбирательства нюансы узнаю. Парсер не встроен в программу. Парсер обрабатывает файлы, которые программа из интернета доставляет через прокси и складывает. Например ожидаемые данные: 1 2 3 5 4 6 5 4 8 А вот как было: 1 2 3 0 0 0 5 4 6 0 0 0 5 4 8 0 0 0 Каждая строка - новый файл. И каждый запрос программой - новый набор цифр. Каждый запрос - исполнение у агента на веб сервере рнр скрипта, а значит данные постоянно отдаются новые, пусть в явном выражении они и не изменились, например. В заголовках ответа у агента нет experation date. Непонятно откуда? Откуда могли все же взяться они - нули? То что это три нуля внутри файла, правильно разделенные управляющими байтам (перенос строки), вводит в заблуждение и указывает что не с потолка взялись. Это правильные данные, но они появляются по команде. Но команды такой не было иначе во втором примере даже вперемешку с нулями данные _не_продолжали_ расти, а опять начинались бы с первого десятка. (то есть ресет имел бы место, но его не было) Есть три составляющие: программа (исходников нет), сквид (промежуточное звено, веб сервер + рнр скрип у агента Откуда могли все же взяться они - нули? С уважением, Дмитрий ПЫ начинаю думать о проблемах на сервере "агента".