CGI C 语言 例子
时间: 2024-08-15 10:10:10 浏览: 32
CGI(Common Gateway Interface)是一种标准协议,允许Web服务器调用外部应用程序(通常是命令行工具或脚本,包括C语言)处理来自Web浏览器的请求。下面是一个简单的CGI C语言的例子,它接收GET请求并返回一个问候消息:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define CONTENT_TYPE "Content-Type: text/html"
// CGI程序主体
int main(int argc, char *argv[]) {
if (argc != 2) {
fprintf(stderr, "Usage: %s [query string]\n", argv);
exit(400); // 返回状态码400表示错误的请求参数
}
// 获取查询字符串
char *queryString = argv[1];
char *param = strtok(queryString, "&");
if (!param) {
printf("%s\n%s", CONTENT_TYPE, "<h1>Error: No parameter</h1>");
exit(400);
}
// 解析参数
char name[50];
strcpy(name, param);
while ((param = strtok(NULL, "&"))) {
if (!strcmp(param, "name")) {
strcat(name, "=");
strcat(name, param + strlen(param) - 1); // 获取最后一个字符,假设它是名字值的分隔符
}
}
// 构造并打印响应
printf("%s\n%s", CONTENT_TYPE, "<html><body>Hello, ");
printf("<p>Welcome, %s!</p></body></html>", name);
return 0;
}
```
在这个例子中,如果接收到一个包含 "name=value" 的 GET 查询字符串,它会解析出名字部分并返回一条个性化的欢迎信息。当你在浏览器中访问类似 `http://yourserver.com/cgi-bin/hello.cgi?name=John Doe` 时,CGI程序会被调用并显示相应的页面。