parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Парсер надеюсь 64-х битный?

moko 24.09 06:36

Посмотрел, оказывается используемое API Windows в этом месте 32-х разрядное.
int _write(int fd, const void *buffer, unsigned int count);
То есть размер может быть до 4-х Gb, а результат до 2-х Gb. В парсере код ниже:
ssize_t written=write(f, info.str, info.length);
if(written<0)
...
Поэтому и выдается ошибка (хотя на самом деле это переваливший за 2Gb размер).
А 17 - это код ошибки предыдущей операции, запись на самом деле успешна.

Поменяю код, сделаю запись частями. Пока можно игнорировать такую ошибку (но это не отменяет уже более жесткого лимита в 4Gb).