Введение в CGI

       

Целые числа


Целое число декларируется как:

int a; unsigned int au; short b; long c;

Нас интересуют только первые две строки. Последняя строка декларирует длинное целое число. Короткое число попадает в интервал -214<a<214. Если у числа указан модификатор unsigned, то оно попадает в интервал 0<a<215.

Одновременно с декларированием число можно проинициализировать, что вообще-то рекомендуется делать всегда:

int a=0,b=0;

Как видно из этого примера, в одном операторе декларирования (объявления) переменных можно указать сразу несколько переменных одного типа и при этом их можно инициализировать. Переменные целого типа необходимы в CGI-программировании при обработке обращений по методу POST. Для того, чтобы считать данные из потока стандартного ввода, нужно указать скрипту, сколько байтов оттуда следует считать. При этом сначала текстовую константу из переменной окружения CONTENT_LENGTH следует преобразовать в число, а затем использовать в операторах чтения или цикла:

#include <stdio.h> #include <string.h> void main() { char *length,*buf; int n,i; length = (char *) getenv("CONTENT_LENGTH"); n = atoi(length); buf = (char *) malloc(n+1); memset(buf,'\000',n+1); for(i=0;i<n;i++) { buf[i] = getc(); } printf("Content-type: text/plain\n\n%s\n", buf); free(buf);

Функция getenv() позволяет получить значение переменной CONTENT_LENGTH, а функция atoi() — преобразовать это значение в целое число, которое потом используется в качестве границы при посимвольном чтении данных из стандартного потока ввода.



Содержание раздела