windows下,使用c写了一个简单的cgi程序,生成exe类型的可执行文件,代码如下:

 #include<stdio.h>
int main()
{
printf("Content-Type:text/html\n\n");
printf("Hello,world!\n");
return ;
}

怎样使apache加载生成的exe文件?只需要两步即可实现:

1、配置cgi程序所在目录

2、使apache能该识别exe文件

对应到apache的配置文件分别为:

A:

<IfModule alias_module>代码块中增加:

ScriptAlias /cgi-bin/ "E:/c/"

红色字体为cgi程序(此处指生成的exe文件)所在的目录

注意:需要修改两处,在该代码块下方不远处也有一个地方需要修改,如下:

 <Directory "E:/c">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>

B:

<IfModule mime_module>代码块中修改或者增加如下两行:

AddType text/html .exe
AddHandler cgi-script .exe .cgi

假如生成的exe文件名为:test.exe

此时将test.exe拷贝到E:\C目录下,并重启apache。

浏览器中运行http://localhost/cgi-bin/test.exe,此时若看到Hello,world!则说明,配置成功。

扩展:

在c语言中接受get、post数据,范例如下:

 #include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char *data;
long m,n; printf("Content-Type:text/html\n\n");
printf("<title>c语言生成html</title>"); data = getenv("QUERY_STRING");
if(NULL == data)
printf("<p>Error.</p>");
else if(sscanf(data,"m=%ld&n=%ld",&m,&n)!= )
printf("<p>Please input number.</p>");
else
printf("<p>m:%ld;n:%ld.</p>",m,n);
return ;
}

apache通过cgi调用exe程序的更多相关文章

  1. .net 部署到服务端IIS,Process调用exe程序无法运行问题解决

    场景: 开发某一功能将html内容转换为pdf,采用第三方插件wkhtmltopdf.exe进行转换.在本地调试正常运行,部署到服务端后文件没有正常生成. IIS中,Process打不开cmd程序,程 ...

  2. C#调用Exe程序示例

    在编写程序时经常会使用到调用可执行程序的情况,本文将简单介绍C#调用exe的方法.在C#中,通过Process类来进行进程操作. Process类在System.Diagnostics包中. 示例一 ...

  3. C#传递参数调用exe程序

    今天公司让我把Winform程序里的一块单独成一个exe文件,从原程序中打开新的exe程序,这就涉及到参数的传递,故来记录下传递参数到exe程序的方式 第一种方式 首先在程序A中添加引用using S ...

  4. C# 如何以参数的形式调用.exe程序

    System.Diagnostics.Process.Start("程序的路径", "参数1 参数2");第一个参数是aaa.exe 的路径,第二个参数是用空格 ...

  5. python调用exe程序

    最近在做测试,公司的产品做成了exe,让我去测试,C++写的程序啊,我直接用python调用那个exe,也有个坑,必须要到exe在的那个目录下,然后才能调用: import os def main() ...

  6. Js调用exe程序方法(通过URL Protocol实现网页调用本地应用程序)

      1.使用记事本(或其他文本编辑器)创建一个protocal.reg文件,并写入以下内容 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROO ...

  7. JAVA 调用exe程序执行对应的文件 (个人用于编译Java文件)

    需求: 需要利用Java程序,来调用计算机本身的黑窗口,来将特定的Java文件编译成对应的字节码文件. 实现思路: 通过调用Java的Runtime类,每个 Java 应用程序都有一个 Runtime ...

  8. 在c++中调用exe程序进行操作

    #include <Windows.h> #include <iostream> #include <direct.h> #define picNum 228 us ...

  9. python 调用exe程序

    #!/usr/bin/python #-*- coding:utf-8 -*- import os, subprocess import tkMessageBox import msg_box def ...

随机推荐

  1. Android 线程池(转)

    new Thread的弊端及Java四种线程池的使用: 1.new Thread的弊端 ); } catch (InterruptedException e) { // TODO Auto-gener ...

  2. Redis集群(三):主从配置一

    一.本文目的          Redis的主从配置分为两篇文章,第一篇主要介绍了Redis主从配置的搭建过程及使用,第二篇主要说明各种情况下Redis主从状态,如Master挂掉,Slaver挂掉, ...

  3. 【51Nod 1501】【算法马拉松 19D】石头剪刀布威力加强版

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1501 dp求出环状不连续的前缀和,剩下东西都可以算出来,比较繁琐. 时间 ...

  4. HTML5利用link标签的rel=import引入html页面

    如果是以前,我们可以使用iframe去引入,现在可以是这样的形式:<link rel="import" href="a.html" id="tm ...

  5. 深夜重温JavaScript中的对象和数组

    这一块实际上已经学过了,因为没有学好,在工作过程中遇到一些对象或者数组的操作,会去百度查找,浪费了许多宝贵的时间,所以特地再拐过头来重新学习. 对象 基本概念: 对象这种基本的数据结构还有其他很多种叫 ...

  6. top命令

    TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中C ...

  7. Scene

    Unity 中场景切换 http://www.cnphp6.com/archives/62868 场景管理插件Scene Manager http://blog.csdn.net/onerain88/ ...

  8. entiryFramework 事务控制

    1.在项目中添加System.Transactions命名空间 2.在代码中编写如下代码段: using (var trans = new TransactionScope()) { EF的代码 tr ...

  9. 2Struts2基础----青软S2SH(笔记)

  10. linux用命令删除重复行

    文本处理时,经常要删除重复行,下面是三种方法 第一,用sort+uniq,注意,单纯uniq是不行的. sort -n test.txt | uniq 第二,用sort+awk命令,注意,单纯awk同 ...