2015年10月12日小计

本文介绍了作者在国庆假期后开发CGI程序的经历,包括通过getenv()获取环境变量的方法、如何处理POST请求中的数据以及输出时需注意的HTTP协议头等关键信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

国庆放完假一直在忙着写个CGI程序,刚开始的时候,我以为这个东西会很简单,就是update数据到数据库,但是也是让我整了好几天,整完东西后,有些东西我这里想总结一下。

我们获取CGI输入时通过getenv()获取环境变量,下面是几个常用的参数:

getenv("REMOTE_ADDR")获取对端IP地址

getenv("REQUEST_METHOD")获取请求方法,如“GET","POST"

getenv("CONTENT_LENGTH")这个是获取POST方法中参数的长度,这个在POST方法才有用

那如何获取POST方法的数据了,其实我们知道CGI输入输出通过标准的stdin和stdout。所以我们的参数输入可以通过scanf以及fread(,size,1,stdin),这样可以获得缓冲区的数据。

对于CGI程序的输出使用printf()函数,有几项需要注意的

1.因为使用的http,所以要遵循http协议,字段里面要有body长度相关协议头,如:Content-Lengh:

2.其次我们要知道内容格式,所以还要加上content-type

对于CGI还有以下补充

1.权限,调用CGI程序的fastCGI有可能没有权限执行cgi程序,所以这里需要设置权限。

2.关于环境目录,这个也要特别注意有可能,当前目录为fastCGI执行目录,这里需要设置一下,通过readlink函数设置,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值