Ayuda CGI y html

T

Soy nuevo en el tema este y la verdad que tengo varias dudas, a ver si me podéis ayudar:

He empezado una obtativa en la uni que me piden mi primera web basada en CGI "programada en c" que sea capaz de hacer un factorial de un nº introducido por el usuario.

Lo primero que he hecho (medio copiando, editando e intentando entender ) ha sido el programa C del factorial e intentando hacer CGI:

#include <stdio.h>
#include <stdlib.h>

//esto es el método del factorial que en si está b

long int factorial(int m)
{
int i;
long int prod = 1;
if(m>1)
for (i = 2; i <= m; ++i)
prod *=i;
return(prod);
}
main ()
{

//Aquí viene el cutre CGI
char *data;
int m;
printf("Content-Type: text/html\n\n");


      printf("<TITLE>El factorial es </TITLE>\n");
      printf("<H3>El resultado del factorial es: </H3>\n");
      data = getenv("QUERY_STRING");
      if (data == NULL){
               printf("<P> eror al pasar los datos al cgi");}
                else {
    
      sscanf(data,"m=%1d",&m);
      printf("<P>\nn! = %ld", factorial(m));
      return 0;
      }
       
      }

y este es el html que lo llama:


<HTML>
<HEAD>
<TITLE> FACTORIAL </TITLE>
</HEAD>

<B>

<FORM ACTION="factorial.cgi">
<P> Especifica el número que quiere saber su factorial
< IMPUT TYPE=text NAME=m SIZE="5"><BR>
< INPUT TYPE=submit VALUE="OK">

</FORM>

</BODY>

</HTML>

Mi pregunta..esto está bien????
-hay alguna forma del pasar el programa c al cgi sin tener q poseer un Linux/unix.
-Alguien me puede aclarar un poco como paso la variable al programa C y como del C la paso al htlm.
-un servidor q teng php puede interpretar cgi
-los q dicen q pueden ..si yo le pogo q ejecute directamente la cgi se verá algo..
(esto ultimo lo digo pq tngo host gratuitos pero no me abren el cgi.)

Muchas gracias

Usuarios habituales