Página 1 de 1

Uma pergunta doida

MensagemEnviado: 03 Mai 2010 00:13
por Iran
Uma pergunta doida aqui que nem eu sei pra que quero saber isso:

No livro C Programming in Linux o David faz esse programinha

Código: Selecionar todos

/*****************************************************************
* C Programming in Linux (c) David Haskins 2008
* chapter2_3.c                                           *
*****************************************************************/
#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[], char *env[])
{
   printf("Content-type:text/html\n\n");
   printf("<html>\n");
   printf("<body bgcolor=\"%s\">\n",argv[1]);
   printf("</body>\n");
   printf("</html>\n");
    return 0;
}


Manda compilar com o gcc da seguinte forma

gcc -o data3 chapter2_3.c -lc

Como superuser manda copiar o "executavel" para your public_html_cgi-bin diretory. /usr/lib/cgi-bin (Ubuntu)

Depois manda digitar no Browser http://localhost/cgi-bin/data3?red

Pelo que entendi o html gerado pelo programa C é exibido no navegador.

Instalei o Apache no windows.

Como faço isso em windows ?

Que compilador usar ? Pode ser o DevC ?

Onde coloco o executavel gerado ? Em cgi-bin da instalaçao do Apache ?

O que digito no Browser para o C ser executado e o html exibido no Navegador ?

Nao sei pra que isso poderia me servir mas fica aí a pergunta.

Grato.

MensagemEnviado: 03 Mai 2010 00:43
por Iran
Na tentativa descobri, pura sorte

Compilei com o DevC.

O exe fica na pasta cgi-bin da instalação do Apache.

Digitei: http://localhost/cgi-bin/chapter2_3.exe?blue no Browser.

Resta saber para que serve isso.

MensagemEnviado: 03 Mai 2010 01:26
por Iran
Será que isso tem a ver com a pergunta / resposta do Marcelo no tópico criado pelo Wagner sobre que IDE usar para C ?

"pq vc nao migra para aplicacoes web? "

Não, aí não, tem nada a ver não. Tu tá ficando doido mesmo.

É ?

MensagemEnviado: 03 Mai 2010 03:07
por msamsoniuk
eh por aih... testa esse aqui:

Código: Selecionar todos
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int
main (int argc, char *argv[], char *env[])
{
  int i;
  char *query;

  printf ("Content-type:text/html\n\n");
  printf ("<html>\n");

  query=getenv("QUERY_STRING");

  if(!strcmp(query,""))
  {
    printf ("<form>\n");
    printf ("First name:<input type=\"text\" name=\"firstname\" /><br />\n");
    printf ("Last name:<input type=\"text\" name=\"lastname\" />\n");
    printf ("</form>\n");
  }
  else
  {
    printf("<b>QUERY = %s</b><br />\n",query);
  } 
 
  printf ("<hr><br />\n");

  for(i=0;env[i];i++)
  {
    printf ("<li> env[%d] = %s<br />\n",i,env[i]);
  }
 
  printf ("</body>\n");
  printf ("</html>\n");
  return 0;
}


quando roda sem passar parametros, ele mostra dois campos de texto para vc entrar com nome e sobrenome. tambem mostra a saida de env[]... digita nome, tab, sobrenome e enter. ele vai processar e mostrar a query que vc mandou (e a saida de env[], para entender como ele passa essas coisas). o programa funciona como uma maquina de estados. vc decodifica os parametros passados em QUERY_STRING e entao processa os dados de um form (tem que parsear a query!). de acordo com o q eh passado, vc decide qual sera o proximo form e assim vai...

no caso de um banco de dados, por exemplo, vc poderia escolher qual database quer consultar, daih teria um form para cada uma, com botoes para inserir, pesquisar, alterar e deletar. conforme a opcao escolhida na query, novamente, vc chama funcoes diferentes que interfaceiam com o banco de dados (um mysql, por exemplo).

MensagemEnviado: 03 Mai 2010 09:16
por xultz
Iran, antigamente esta era a solução para criar sites dinâmicos, usando html. Hoje tem muitas opções (PHO, ASP, Java, etc) e dá prá fazer de forma mais simples.
A questã é se você fizer um sistema embarcado com uma porta ethernet onde pretende acessar via web, rodar um apache com phppode acabar com teu processamento, então rodar um servidor levinho com um cgi-bin compilado tente a ser muito mais leve.

MensagemEnviado: 03 Mai 2010 10:10
por Iran
Na verdade eu sou tão ignorante nisso que não sei bem pra que serve, nem aproveitar os comentários que vcs fizeram, vi o post do marcelo lá no outro tópico e achei que tinha algo a ver com isso que tinha lido no livro citado tempos atras.

Estou lendo um pouco aqui pra ver no que vai dar. Se alguém tiver uma literatura atual sobre o tema para me indicar fico grato.