Obtener los parámetros enviados por POST es muy fácil: llegan por la entrada estándar. Solo tienes que ir leyéndola e interpretar los diversos pares de parámetro/valor, separados por '&', algo que también es fácil de hacer con strtok().
Aquí tienes un resumen:
Código:
int main()
{
void destripa(char *lin);
char linea[MAX];
strcpy(linea,"");
fgets(linea, MAX, stdin);
destripa(linea);
}
void destripa(char *lin)
{
int tam;
char *txt;
char *p;
tam=strlen(lin);
txt=(char *)malloc(tam);
strcpy(txt,lin);
printf ("Content-Type: text/html\n\n");
printf("<html><body><h3>Analisis de los datos enviados mediante POST<h3>\n");
p = strtok(txt, "&");
while (p)
{
printf("<b>Pareja Nombre/Valor :<b> <font color=\"RED\">%s<font><br>\n", p);
p = strtok(NULL, "&");
}
printf ("<body><html>\n");
}
El main() se encarga de declarar las variables que vamos a usar, y de leer de la entrada estándar (stdin).
Luego, la función destripa(), con la ayuda de strtok() y un puntero, va leyendo lo leído y sacando los pares parámetro/valor. En este ejemplo salen a la salida estándar, pero podrían ser almacenados para ser usados en otras partes del programa.
Código completo Con Perl es un poco más corto.