CGIC函数说明
CGIC函数说明
参考cgic函数说明_Embedded Resources Library Online (C)郝博士
cgiFormResultType cgiFormString( char *name, char *result, int max)
用于从输入域中copy字符串。他将域名max-1字节中的字符copy到缓冲区result。若域不存在,则copy一个空串到result缓冲区。在此函数中所有的新行由换行符代表。
cgiFormResultType cgiFormStringNoNewlines( char *name, char *result, int max)
它与cgiFormString函数相似,只是所有的CR和LF都被去掉了。
cgiFormResultType cgiFormStringSpaceNeeded( char *name, int *length)
它返回指向name的字符串的长度,并将长度放入length中。
cgiFormResultType cgiFormStringMultiple( char *name, char ***ptrToStringArray)
若同一名字有多个输入域,或域中的字符串可以动态变化,那么你可以使用本函数。它把名为name的所有输入域的值放在prtToStringArray中。
void cgiStringArrayFree(char **stringArray)
它释放了分配给stringArray的内存。
cgiFormResultType cgiFormInteger( char *name, int *result, int defaultV)
从输入域中取出整数放入result中。
cgiFormResultType cgiFormIntegerBounded( char *name, int *result, int min, int max, int defaultV)
若输入域中的整数在界限内则取出并放入result中。
cgiFormResultType cgiFormDouble( char *name, double *result, double defaultV)
从输入域中取出浮点数放入result中。
cgiFormResultType cgiFormDoubleBounded( char *name, double *result, double min, double max, double defaultV)
若输入域中的浮点数在界限内则取出并放入result中。
cgiFormResultType cgiFormSelectSingle( char *name, char **choicesText, int choicesTotal, int *result, int defaultV)
取出复选框(跟在select语句之后的),把选择的名字copy到choicesText,把选择的个数copy到choicesTotal,把当前的选择copy到result。
cgiFormResultType cgiFormSelectMultiple( char *name, char **choicesText, int choicesTotal, int *result, int *invalid)
与cgiFormSelectSingle类似,只指向整型数组的result代表了选择的项。
cgiFormResultType cgiFormCheckboxSingle( char *name)
若复选框被选中,则函数返回cgiFormSuccess,否则返回cgiFormNotFound。
cgiFormResultType cgiFormCheckboxMultiple( char *name, char **valuesText, int valuesTotal, int *result, int *invalid)
与cgiFormCheckboxSingle类似,但它处理同一名字有多个复选框的情况。name指向复选框的名字;valuesText指向包含有每个复选框中参数的一个数组;valuesTotal指向复选框的总数;result是一个整型数组,每个复选框选中的用1代表,没选中的用0代表。
cgiFormResultType cgiFormRadio( char *name, char **valuesText, int valuesTotal, int *result, int defaultV)
与cgiFormCheckboxMultiple相似,只是这里是单选按钮而不是复选框。
void cgiHeaderLocation(char *redirectUrl)
重定向到redirectUrl指定的URL。
void cgiHeaderStatus(int status, char *statusMessage)
输出状态代码status和消息statusMessage。
void cgiHeaderContentType(char *mimeType)
用于告知浏览器返回的是什么类型的文档。
cgiEnvironmentResultType cgiWriteEnvironment(char *filename)
本函数把当前CGI环境写入filename文件中以便以后调试时使用
cgiEnvironmentResultType cgiReadEnvironment(char *filename)
本函数从filename文件中读取CGI环境以便用来调试。
int cgiMain()
一个程序必须要写这个函数, 这是主程序开始之处。
cgic变量参考
This section provides a reference guide to the various global variables provided by cgic for the programmer to utilize. These variables should always be used in preference to stdin, stdout, and calls to getenv() in order to ensure compatibility with the cgic CGI debugging features.
大多数的变量相当于各种CGI变量,重要的是VGIC的变量不能为空.
char *cgiServerSoftware
服务器软件名称,或者一个空的字符串 or to an empty string if unknown.
char *cgiServerName
返回服务器名称或空
char *cgiGatewayInterface
网关接口 (通常是 CGI/1.1),或空
char *cgiServerProtocol
网络协议(usually HTTP/1.0),或空
char *cgiServerPort
服务器端口(usually 80),或空
char *cgiRequestMethod
请求方式 (usually GET or POST),或空
char *cgiPathInfo
指出附加虚拟路径
char *cgiPathTranslated
指出附加虚拟路径并由服务器转为本地路径
char *cgis criptName
调用程序的名字
char *cgiQueryString
包含 GET-method 请求或者 <ISINDEX> 标签. 这个信息不需要解吸,除非用<ISINDEX>标签通常由CGIC函数库自动解析。
char *cgiRemoteHost
从浏览器返回客户主机的名字
char *cgiRemoteAddr
从浏览器返回客户的IP地址
char *cgiAuthType
返回用户授权信息
char *cgiRemoteUser
鉴别用户 cgiAuthType.
char *cgiRemoteIdent
返回用户的名字(用户通过用户坚定协议)这个消息是不安全的,特别是Windows系统。
char *cgiContentType
返回MIME内型
char *cgiAccept
参考 cgiHeaderContentType() cgiUserAgent
char *cgiUserAgent
取的用户浏览器信息
char *cgiReferrer
指向用户访问的URL.
int cgiContentLength
表单或查询数据的字节被认为是标准的.
FILE *cgiOut
CGI输出. cgiHeader函数,象cgiHeaderContentType, 首先被用于输出mime头; 用于 fprintf() 和fwrite(). cgiOut通常相当于stdout。
FILE *cgiIn
CGI输入. 在决大部分时间你都不会需要这个函数。
cgic结果编码参考
在大量的按列中, cgic函数有计划的产生合理的结果,甚至浏览器和用户不合理时。无论如何, 有时候知道不合理的事情发生,尤其赋予一个值或定义一个范围是一个不充分的解决方案。下面的这些结果编码有助更好了解。
cgiFormSuccess
提交信息成功
cgiFormTruncated
删除部分字节.
cgiFormBadType
错误的输入信息(没有按要求)
cgiFormEmpty
提交信息为空.
cgiFormNotFound
提交信息没有找到.
cgiFormConstrained
数字属于某个特定的范围,被迫低于或高于适当范围。
cgiFormNoSuchChoice
单一选择提交的值是不被接受。通常说明表但和程序之间存在矛盾。
cgiEnvironmentIO
从CGI环境或获取的文件读或写的企图失败,报出I/O的错误。
cgiEnvironmentMemory
从CGI环境或获取的文件读或写的企图失败,报出out-of-memory的错误。
cgiEnvironmentSuccess
从CGI环境或获取的文件读或写的企图成功。
CGIC函数说明的更多相关文章
- cgic: CGI的C函数库
下载回源码包以后,就3个文件:cgic.c 函数库capture.c 一个很简单的CGI例子,仅仅输出两行提示文字cgictest.c 一个演示读取form表单数据的CGI例子 首先在 ...
- cgic: CGI的C函数库-(转自COS)
下载回源码包以后,就3个文件:cgic.c 函数库capture.c 一个很简单的CGI例子,仅仅输出两行提示文字cgictest.c 一个演示读取form表单数据的CGI例子 首先在 ...
- linux下的webserver BOA及CGIC库的使用指南(转帖)
我把网页挂载到nfs 下面的文件中(需要新建一个文件www ),不过这样很方便! 安装过程 ====================================================== ...
- 嵌入式开发之cgic库---cgi库的使用
很幸运!用C语言写CGI程序还可以有比较简单的方式,那就是我们可以借助使用第三方库CGIC(CGIC是一个功能比较强大的支持CGI开发的标准C库,并支持Linux, Unix 和Windows等多操作 ...
- cgic 中文文档
CGIC英文文档地址:https://boutell.com/cgic/ cgic是用c写cgi程序的一个很小的库,所以英文文档也很少,为了便于日后复习翻看,心血来潮,翻译了一遍. 1. 什么是cgi ...
- 芯灵思Sinlinx A33开发板boa与CGI移植
开发平台 * 芯灵思SinlinxA33开发板 淘宝店铺: https://sinlinx.taobao.com/ 嵌入式linux 开发板交流 641395230 在嵌入式设备的管理与交互中,基于W ...
- cgic 写CGI程序
CGIC是C语言CGI库函数,用于编写CGI程序 CGIC 主要完成以下功能: * 对数据进行语法分析 * 接收以 GET 和 PSOT 两种方式发送的数据 * 把 FORM 中的不同域连接成连续的串 ...
- cgic程序的编写遇到的问题
cgic程序的编写 今天使用cgic库编写了一些cgi的代码,结果在编译的时候出了很多错误,在这里分享出来算是给自己做个笔记,虽然都是小问题但是急需解决的时候还是很麻烦的. 代码结构: login_c ...
- Web之CGIC的介绍与使用20171229
一.CGIC简介 1.CGI简介 CGI(Common Gateway Interface)是外部应用扩展应用程序与WWW服务器交互的一个标准接口.按照CGI标准编写的外部扩展应用程序可以处理客户端浏 ...
随机推荐
- Alpha 冲刺 —— 十分之一
队名 火箭少男100 组长博客 林燊大哥 作业博客 Alpha 冲鸭! 成员冲刺阶段情况 林燊(组长) 过去两天完成了哪些任务 协调各成员之间的工作,对多个目标检测及文字识别模型进行评估.实验,选取较 ...
- redis2.4.conf配置文件中文释意
# Redis示例配置文件 # 注意单位问题:当需要设置内存大小的时候,可以使用类似1k.5GB.4M这样的常见格式: # # 1k => 1000 bytes # 1kb => 1024 ...
- 使用Empire自动获取域管理员
使用Empire自动获取域管理员 译:backlion 前言 自从Empire和BloodHound被应用来,对AD渗透已经可以获取到内网环境95%的信息量.作者发现自己一遍又一遍地在做同样重复的事 ...
- 温习classList api
有道题是一个removeClass的功能,代码里是正则分隔了传入的name,根据name的个数,循环移除掉,让寻找bug..看了了这几行代码,首先想到的是我会如何去优化. 如果看代码一两分钟就能找到公 ...
- 解题:HNOI 2012 永无乡
题面 并查集维护连通性,然后暴力启发式合并就完了,记得合并时边DFS边清空数组 #include<cstdio> #include<cstring> #include<a ...
- python基础----__slots__方法、__call__方法
''' 1.__slots__是什么:是一个类变量,变量值可以是列表,元祖,或者可迭代对象,也可以是一个字符串(意味着所有实例只有一个数据属性) 2.引子:使用点来访问属性本质就是在访问类或者对象的_ ...
- ios 逆向
Theos https://www.jianshu.com/p/307243ea40e4 Dumpsdecrypted https://www.cnblogs.com/wangyaoguo/p/908 ...
- Idea安装findbugs插件,以及findbugs安装find security bugs插件
第一:先讲述Idea怎么安装findbugs插件 具体操作如下面的图所示: 然后就可以安装findbugs 第二:findbugs怎么安装find security bugs这个find bugs的插 ...
- 抓包 ------ Wireshark 的使用
Wireshark的数据包详情窗口,如果是用中括号[]括起来的,表示注释,在数据包中不占字节 发了一个包,很久没有收到应答后,会重发包,在Wireshark抓包工具提示“[TCP Retransmis ...
- mysql 中delete和trncate区别
mysql中删除表记录delete from和truncate table的用法区别: MySQL中有两种删除表中记录的方法:(1)delete from语句,(2)truncate table语句. ...