Como executar um programa em c no servidor, invocando o aplicativo no navegador? [RESOLVIDO]

1. Como executar um programa em c no servidor, invocando o aplicativo no navegador? [RESOLVIDO]

Crelison Alves
crelison

(usa Outra)

Enviado em 22/12/2015 - 13:31h

Como configurar no linux para poder executar um programa em c no navegador.

programa

/*****************************************************************
* C Programming in Linux (c) David Haskins 2008
* hello.c
*
*****************************************************************/
#include <stdio.h>
int main(int argc, char *argv[])
{
int i=0;
printf("Content-type:text/plain\n\n");
printf("Hello, you are still learning C!!\n");
printf("Number of arguments to the main function:%d\n", argc);
for(i=0;i<argc;i++)
{
printf("argument number %d is %s\n", i, argv[i]);
}
return 0;
}

compilei como ./hello e salvei na pasta /usr/lib/cgi-bin

mas quado insiro o endereço //localhost/cgi-bin/hello

não funciona

desde já agradeço a contribuição.


  


2. MELHOR RESPOSTA

Arthur J. Hoch
Arthur_Hoch

(usa FreeBSD)

Enviado em 22/12/2015 - 23:44h

Dei uma pesquisada e achei alguns tutoriais de C para CGI.

Links:
http://www.openroad.org/cgihelp/cgi.html
http://www.cgi101.com/book/ch1/text.html
http://www.cs.tut.fi/~jkorpela/forms/cgic.html

E tem o mailman que tem a interface web programada para CGI, talvez seja interesante ver como funciona.

Espero ter ajudado.


Edit:

No mailman, normalmente se criar um virtual host no apache, para executar o cgi, então você vai ter fazer alguma coisa parecida com isso:


ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/

<Directory /usr/lib/cgi-bin/mailman/>
AllowOverride None
Options +ExecCGI
AddHandler cgi-script .cgi
# (Old apache2.2 style configuration:)
# Order allow,deny
# Allow from all
# New apache 2.4 configuration:
Require all granted
</Directory>


Substituindo os folders do mailman pelos do teu programa.

Obs: A única coisa que o navegador executa é javascript, o resto é servier-side.
https://pt.wikipedia.org/wiki/Linguagem_client-side
https://pt.wikipedia.org/wiki/Linguagem_server-side

3. Re: Como executar um programa em c no servidor, invocando o aplicativo no navegador? [RESOLVIDO]

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 22/12/2015 - 13:57h

Amigo, pelos meus conhecimentos em programação back-end, não é possível fazer isso.

No firefox seria assim


file:///tmp/vaco


Mas em vez de executar ele pede para baixar o arquivo binário.

Acho que não é possível fazer isto. Desculpe.

[]'s

T+

--

Att,

Thiago Henrique Hüpner

(Mensagem scaneada pelo antivírus........ops! não precisa, afinal eu uso Linux!)



4. Instale o servidor apache e php5, usando o php use o comando system(nomeDoProgrma);

Crelison Alves
crelison

(usa Outra)

Enviado em 22/12/2015 - 14:10h

instale o apache e php5
este link pode ajudar https://www.youtube.com/watch?v=8bTs4hwRhiE

depois crie um arquivo php para invocar o programa em c.

salve o arquivo hello.php no diretório /var/www/html

hello.php
________________________

<?php

echo "olá";
system("./hello");

php?>
________________________




https://www.youtube.com/watch?v=3S4m5KCeRaQ



5. Re: Como executar um programa em c no navegador?

Paulo
paulo1205

(usa Ubuntu)

Enviado em 22/12/2015 - 19:59h

crelison escreveu:

instale o apache e php5
este link pode ajudar https://www.youtube.com/watch?v=8bTs4hwRhiE

depois crie um arquivo php para invocar o programa em c.


Essa resposta não é adequada à pergunta "como executar um programa em C no navegador", pois o que se faz nela é executar o programa em questão no servidor, pegando sua saída e transmitindo-a, já pronta, ao navegador.

Se isso era realmente o que você queria saber, então a pergunta deveria ter sido diferente.

Se, por outro lado, você realmente quis saber como executar um programa em C no navegador, as respostas abaixo seriam mais adequadas (sem a pretensão de que sejam as únicas).

1) Para executar um programa em C específico, você poderia escrever tal programa na forma de um plugin a ser instalado no navegador, associando a ele um determinado mime-type. Toda vez que o usuário acedesse a conteúdo desse mime-type, o seu plugin seria acionado pelo navegador para tratar tal conteúdo.

2) Você poderia embutir no navegador, também através de um plugin ou addon, um ambiente de execução para programas em C escritos pelo usuário. O seu plugin aceitaria o código informado pelo usuário e o compilaria para um formato interno (ou o interpretaria diretamente), produzindo dentro do browser resultados semelhantes aos que produziriam os mesmos programas se compilados e executados diretamente no sistema operacional.

3) Se o que você quer é permitir a execução de qualquer coisa no lado usuário (i.e. você quer invadir a máquina do cara e rodar qualquer comando no nível do sistema operacional, fora do browser), a abordagem ainda seria através de algum plugin ou addon, mas esse addon teria de ter recebido diretos de execução que normalmente não são concedidos sem o conhecimento do usuário (a não ser que o browser já esteja com segurança corrompida; nesse caso, alguém teria chegado antes de você). Possivelmente nem precisasse escrever um plugin dessa natureza, pois há tantos plugins vulneráveis por aí que você talvez pudesse se valer de uma brecha que já esteja aberta.


6. Re: Como executar um programa em c no navegador?

Perfil removido
removido

(usa Nenhuma)

Enviado em 23/12/2015 - 01:23h

Dá também prá escrever um motor (ou engine) que interprete código C.
Da mesma forma que o navegador interpreta Javascript.
Mas esse motor tem que ser um serviço bem porco.
Mal projetado mesmo, prá liberar acesso de ponteiros sem proteção de memória.
Daí viriam os exploits. Deste modo seria possível rodar C com todos os riscos da linguagem.

Como disse Bjarne Stroustrup sobre C e C++:

"C faz com que dar um tiro no pé seja fácil; C++ torna isso mais difícil, mas quando nós o fazemos arrebentamos com a perna toda."


O projeto alternativo seria o de se trabalhar com variáveis no modelo de segurança do Perl, Python, PHP e Javascript.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts