cgi.c(cgi)

int websCgiHandler(webs_t wp, char_t *urlPrefix, char_t *webDir, int arg, char_t *url, char_t *path, char_t* query)

功能:处理cgi请求。

说明:

1.抽出页面上form中调用的cgi程序的名字,构建完整的路径/ata0/webs/www/*

2.进入到cgi程序所在的目录,即/ata0/webs/www

3.分配内存,建立cgi程序的参数,主要是从也空格分割的qurey中提取出来

4.从cgi的环境变量中,构建名、值对。

5.确定标准输入、输出。标准输出是个临时文件。

6.调用websLaunchCgiProc,建立cgi处理程序。

-----------------------------------------------------------------------------------------------------------------

void websCgiGatherOutput (cgiRec *cgip)

功能:将临时文件中的内容输出到浏览器上。

说明:也就是将cgi程序prinf出的内存到临时文件,然后读取临时文件中的内容到浏览器上。

-----------------------------------------------------------------------------------------------------------------

void websCgiCleanup()

功能:调用websCgiGatherOutput处理输出,清空cgi所占用的资源

说明:

-----------------------------------------------------------------------------------------------------------------

char_t *websGetCgiCommName()

功能:临时文件名

说明:

-----------------------------------------------------------------------------------------------------------------

int websLaunchCgiProc(char_t *cgiPath, char_t **argp, char_t **envp, char_t *stdIn, char_t *stdOut)

功能:cgi处理程序。

说明:

1.根据cgiPath,卸载已有的module

2.查找_www_cgientry的对应值,找到就将值赋给entryAddr,生成任务vxWebsCgiEntry

3.如果找不到,就加载cgiPath,生成任务vxWebsCgiEntry

-----------------------------------------------------------------------------------------------------------------

static void vxWebsCgiEntry(void *entryAddr(int argc, char_t **argv), char_t **argp, char_t **envp, char_t *stdIn, char_t *stdOut)

功能:cgi程序的外壳,都是通过调用它,来调用cgi程序

说明:设置该任务的标准输入、输出为stdIn、stdOut,创建环境变量,用envp对环境变量赋值,调用cgi处理函数entryAddr。

-----------------------------------------------------------------------------------------------------------------

int websCheckCgiProc(int handle)

功能:检查cgi任务是否存在

说明:

-----------------------------------------------------------------------------------------------------------------

goahead如何使用cgi服务_GoAhead2.5源代码分析之9-cgi处理句柄(cgi.c)相关推荐

  1. Android应用程序绑定服务(bindService)的过程源代码分析

    Android应用程序组件Service与Activity一样,既可以在新的进程中启动,也可以在应用程序进程内部启动:前面我们已经分析了在新的进程中启动Service的过程,本文将要介绍在应用程序内部 ...

  2. 区块链教程Fabric1.0源代码分析流言算法Gossip服务端二

    区块链教程Fabric1.0源代码分析流言算法Gossip服务端二 Fabric 1.0源代码笔记 之 gossip(流言算法) #GossipServer(Gossip服务端) 5.2.commIm ...

  3. c语言传奇引擎源码,Ei3.0服务端引擎源代码+登陆网关+客户端插件

    Ei3.0服务端引擎源代码+登陆网关+客户端插件 procedure TPANEL.Button3Click(Sender: TObject); var P:integer; mItem:DWORD; ...

  4. java游戏刀剑_Game_rc 刀剑无双服务端后端源代码,完美编译运行,javawanmeiyunxing Engine 游戏引擎 267万源代码下载- www.pudn.com...

    文件名称: Game_rc下载  收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 8214 KB 上传时间: 2016-12-01 下载次数: 0 提 供 者: 王文文 ...

  5. Active Directory服务接口完整源代码,组COM接口

    Active Directory服务接口完整源代码,组COM接口 Active Directory服务接口(ADSI)是一组COM接口,用于访问来自不同网络提供商的目录服务的功能.ADSI用于分布式计 ...

  6. gossip 区块链_区块链教程Fabric1.0源代码分析流言算法Gossip服务端一兄弟连区块链教程-阿里云开发者社区...

    区块链教程Fabric1.0源代码分析流言算法Gossip服务端一,2018年下半年,区块链行业正逐渐褪去发展之初的浮躁.回归理性,表面上看相关人才需求与身价似乎正在回落.但事实上,正是初期泡沫的渐退 ...

  7. Android系统默认Home应用程序(Launcher)的启动过程源代码分析

    在前面一篇文章中,我们分析了Android系统在启动时安装应用程序的过程,这些应用程序安装好之后,还需要有一个Home应用程序来负责把它们在桌面上展示出来,在Android系统中,这个默认的Home应 ...

  8. Android应用程序进程启动过程的源代码分析(1)

    Android应用程序框架层创建的应用程序进程具有两个特点,一是进程的入口函数是ActivityThread.main,二是进程天然支持Binder进程间通信机制:这两个特点都是在进程的初始化过程中实 ...

  9. CASSINI源代码分析

    CASSINI源代码分析 2004-11-10 http://blog.csdn.net/shanhe/ 为什么要分析CASSINI? Cassini(卡西尼)是asp.net上的一个开源项目.主要给 ...

  10. Android系统Surface机制的SurfaceFlinger服务的线程模型分析

    在前面两篇文章中,我们分析了SurfaceFlinger服务的启动过程以及SurfaceFlinger服务初始化硬件帧缓冲区的过程.从这两个过程可以知道,SurfaceFlinger服务在启动的过程中 ...

最新文章

  1. 资深SAP专家谈如何深入SAP开发
  2. seo说_百度指数看世间沉浮_如何快速排名-互点快速排名_网站关键词排名常见问题 - 搜狗快速排名...
  3. Chrome插件-新浪微博阅读器
  4. Servlet HTTP Status 405 - HTTP method GET is not supported by this URL
  5. 想要阅读一些开源项目或框架的源代码,不知道从哪里入手?
  6. 【HDU - 5943】Kingdom of Obsession(数论,素数间隔结论,构造,思维,匈牙利算法,匹配问题)
  7. C语言入门I love China,C语言从入门到精通
  8. go-elasticsearch: Elastic官方的Go语言客户端
  9. ce修改服务器的数据库,数据库服务器的调优步骤
  10. pythonname是什么意思_浅析Python __name__ 是什么
  11. CentOS7.5下KVM虚拟机安装
  12. iOS和安卓合并二维码
  13. java实现跟踪 物流管理_基于jsp的物流跟踪-JavaEE实现物流跟踪 - java项目源码
  14. Java实现 | 基于朴素贝叶斯的情感词分析
  15. 淘宝API item_history_price - 获取商品历史价格信息
  16. laragon mysql版本_laragon 使用(php版本升级切换)
  17. 卷积神经网络前向及反向传播过程数学解析
  18. 「Python」Mac下pip出现command not found和Could not find a version that satisfies the requirement ...解决方式
  19. 神器-可视化分析之Basemap实战详解(二)
  20. java输出小数_java输出保留小数点

热门文章

  1. FZU 2037 Maximum Value Problem【递推】
  2. error Code:410 Error Message:appid and openid not match 威富通技术支持,兴业银行微信支付接入支持
  3. 下载抖音无水印视频的微信小程序
  4. 靠谱助手微信版 v1.0 pc版
  5. 使用bootstrap打造卡片个人简历
  6. C# HttpServer 框架
  7. QNX系统将C/C++代码编译为lib***.so文件
  8. 一篇文章带你搞懂DEX文件的结构
  9. 软件开发的版本控制管理
  10. linux 下修改文件夹的用户权限和所属组,为文件建立软连接