当前位置:编程学习 > CGI >>

用c++编程写cgi遇到的问题

本人现用c++在编程cgi,请问怎么调用外部程序啊? 外部程序为自己写的一个简单程序wqq /home/wqq 环境为 linux red hat 谢谢呀
答案:1. system函数:
原型:
#include 
int system (const char *string);
功能:
The system function runs the command passed to it as
string and waits for it to complete. The command is
executed as if the command $ sh −c string has been given
to a shell.
【也就是说,system要使用一个shell来启动指定的程序】


例:
#include 
#include 
int main()
{
printf("Running ps with system\n");
system("ps −ax");
printf("Done.\n");
exit(0);
}


2. exec函数族包括6个函数:

#include 
int execl(const char *path, const char *arg, ...);
int execlp(const char *file, const char *arg, ...);
int execle(const char *path, const char *arg, const char *envp[]);
int execv(const char *path, const char *argv[]);
int execve(const char *path, const char *argv[], const char *envp[];
int execvp(const char *file, const char *argv[]);


参数说明:

execl的第一个参数是包括路径的可执行文件,后面是列表参数,列表的第一个为命令path,接 着为参数列表,最后必须以NULL结束。
execlp的第一个参数可以使用相对路径或者绝对路径。
execle,最后包括指向一个自定义环境变量列表的指针,此列表必须以NULL结束。
execv,v表示path后面接收的是一个向量,即指向一个参数列表的指针,注意这个列表的最后 一项必须为NULL。
execve,path后面接收一个参数列表向量,并可以指定一个环境变量列表向量。
execvp,第一个参数可以使用相对路径或者绝对路径,v表示后面接收一个参数列表向量。

exec被调用时会替换调用它的进程的代码段和数据段(但是文件描述符不变),直接返回到调用它的进程的父进程,如果出错,返回-1并设置errno。
其他:你要全部代码还是? 

上一个:java能不能编写cgi
下一个:寻找能够支持MSSQL/MySQL标准数据库和cgi脚本的空间,要稳定的,大家给介绍一下。

更多图片编程知识:
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,