原创 【原创】嵌入式CGI开发之旅——2

2009-9-1 10:14 5398 5 7 分类: MCU/ 嵌入式

第一个CGI程序:Hello World


Hello World<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


任何程序语言的学习都是从打印Hello World!开始的,这样不但可以熟悉程序的流程和大体结构,而且最大限度的避免了一些细小的错误,给初学者信心。


hello.c


#include <stdio.h>


int main(){


        printf("Content-Type:text/plain;charset=us-ascii\n\n");


        printf("Hello World\n\n");


        return 0;


}


#gcc –o hello.cgi hello.c


#cp hello.cgi /var/www/cgi-bin/


GCC将源文件编译成CGI程序,并拷贝到服务器所制定的cgi程序运行目录中。在浏览器中输入:192.168.44.128/cgi-bin/hello.cgi可以看到页面打印出“Hello World”。


       让我们再来一个更简单的CGI脚本:(Linux下)


#vim /var/www/cgi-bin/hellow.cgi


echo Conten-Type: text/plain


echo


echo


/bin/date


在浏览器中输入:192.168.44.128/cgi-bin/hellow.cgi,我们看到在浏览器页面中输出了当前时间。呵呵,这时应该对CGI是什么有比较深的印象里吧?CGI就是在服务器端执行的一段程序,这段程序执行完毕得到结果后会反馈显示给客户。编写CGI程序的可以是任何形式的语言。


在所有CGI程序中,第一句必须输出HTML头来告诉浏览器这是一个什么样的内容,这个头是服务器与浏览器之间的信息协议并不属于文本的一部分其实Contet-Type指定的就是MIME信息。有三个类型的头部:Contet-TypeLocationStatusContet-Type最为常用



Format


Content-Type


HTML


text/html


Text


text/plain


GIF


image/gif


JPEG


image/jpeg


MPEG


video/mpeg


AVI


Video/avi


Content-Type行后必须接两个空行,不然浏览器不能正确的认出内容类型来。

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

huotingtu_505472073 2009-10-23 21:47

是的确实是要加的,CGI也是linux下的一个程序,只不过是后缀名改变了的一个shell程序而已,shell要执行的话,前面是必须执行shell的外壳的,所以必须加#!/bin/sh,当初复制上来的时候没有复制顶部的那个执行命令,不好意思疏忽了

用户226642 2009-10-13 13:06

echo Conten-Type: text/plain echo echo /bin/date 就这样不行的会出现错误: The CGI was not CGI/1.1 compliant. 参考: In addition to creating the text file, there are a few important considerations with respect to the content of the file. First, the top line of the file must contain the following text: #!/bin/sh 要加#!/bin/sh
相关推荐阅读
huotingtu_505472073 2014-01-12 22:18
嵌入式程序员面试问题集锦
这个测试适于不同水平的应试者,大多数初级水平的应试者的成绩会很差,经验丰富的程序员应该有很好的成绩。为了让你能自己决定某些问题的偏好,每个问题没有分配分数,如果选择这些考题为你所用,请自行按你的意...
huotingtu_505472073 2011-04-14 23:24
【转】一种实用的步进电机驱动电路
1 引言步进电动机是一种将电脉冲信号转换成角位移或线位移的精密执行元件,由于步进电机具有控制方便、体积小等特点,所以在数控系统、自动生产线、自动化仪表、绘图机和计算机外围设备中得到广泛应用。微电子学的...
huotingtu_505472073 2011-04-14 23:22
【转】几种微型电机驱动电路分析
 以下所述电路用于3V供电的微型直流电机的驱动,这种电机有两根引线,更换两根引线的极性,电机换向。该驱动电路要求能进行正反转和停止控制。 电路一: 如下图所示,这电路是作者最初设计的电路,P1.3、P...
huotingtu_505472073 2011-02-18 19:57
【转】集成运放组成的电压比较器
1. 功能及应用:主要用来判断输入信号电位之间的相对大小,它至少有两个输入端及一个输出端,通常用一个输入端接被比较信号Ui,另一个则接基准电压VR 定门限电压(或称阀值)的UT。输出通常仅且仅有二...
huotingtu_505472073 2011-01-26 08:05
【转】直流无刷电动机工作原理与控制方法12
研究结果表明,在半导体薄片上产生的霍尔电动势E可用下式表示: 式中RH ——霍尔系数(  );IH——控制电流(A);B——磁感应强度(T);d——薄片厚度(m);p——材料电阻率(Ω*s);...
huotingtu_505472073 2011-01-26 07:55
【转】直流无刷电动机工作原理与控制方法1
序言   由于直流无刷电动机既具有交流电动机的结构简单、运行可靠、维护方便等一系列优点,又具备直流电动机的运行效率高、无励磁损耗以及调速性能好等诸多优点,故在当今国民经济各领域应用日益普及。   一个...
EE直播间
更多
我要评论
2
5
关闭 站长推荐上一条 /3 下一条