Не удается прочитать CONTENT_LENGTH символов (метод POST) из входного потока.В чем может быть дело?
Скрипт написан на C++. Сервер: Apache/1.3.33, стоит на Slackware 10.1, ядро 2.6.17.7
Браузер, которым посылаются данные - Firefox 1.5.0.5, метод - POST.
getenv("CONTENT_LENGTH") выдает значение большее, чем потом может прочитать read(0,.....
В моем случае getenv("CONTENT_LENGTH") выдает значение 9405, а при попытке прочитать 9405 символов вызовом read(0, sQuery, 9405) в буфер sQuery записывается только 7656 символов.
Код, которым я пытаюсь прочитать строку:
p = getenv("CONTENT_LENGTH");
if((p != NULL) && (*p != '\0')) {
size_t sz = strtoul(p, NULL, 10);
char tmpbuf[1024]; sprintf(tmpbuf, "%u", sz); message(tmpbuf);
if(sz > (size_t)0llu) {
sQuery = (char*)calloc(sz + 1, sizeof(char));
if(sQuery != NULL) {
free_sQuery = -1;
sz = read(0, sQuery, sz);
sQuery[sz] = 0;
p = &sQuery[sz - (size_t)1]; if(*p == '\n') *p = '\0';
}
}
}