Запрещающие ошибки компилятора и ошибочная реализация getenv () Я бы сказал, что для этого кода невозможно segfault на cl = atoi(clen)
. Это потому, что getenv () возвращает либо NULL, либо действительный указатель на массив символов с нулевым символом в конце (это просто причудливый способ сказать строку C).
Поскольку проверяется случай NULL, скорее всего, программа (это не «скрипт») аварийно завершает работу где-то еще.
РЕДАКТИРОВАТЬ : Откуда вы знаете, что он даже падает? Отображается ли ошибка HTTP 500? Если да, скорее всего, вы просто забыли cout << "Content-type: text/html\n\n"
. Что говорят логи веб-сервера?
EDIT2 : не имеет отношения к вашей проблеме, но обычно с использованием функций C, таких как atoi()
, не одобряется; версия C ++ lexical_cast
(реализована в TR1 и boost) является предпочтительной.