栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

嵌入式web -- CGI

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

嵌入式web -- CGI

目录
    • 1、CGI工作原理
    • 2、CGI简单测试
      • 2.1、shell案例
      • 2.2、c语言案例

1、CGI工作原理

公共网关接口(Common Gateway Interface,CGI)
是连接 服务器 和 应用 程序 之间的一个通用接口

2、CGI简单测试
  • 这里使用BOA服务器
  • 编辑配置文件,改最后一行的路径(别忘加 /)
$ sudo vim /etc/boa/boa.conf

以后就可以访问你自定义的cgi目录 (cgi-bin 是一个虚拟路径)

2.1、shell案例
  • 在自定义的cgi目录里操作
$ touch time
$ chmod +x time
$ vim time
#!/bin/sh
echo "Content-Type:text/html;charset=utf-8rn"

echo "time"
echo "`date '+%H:%M:%S'`"
  • 在浏览器测试
2.2、c语言案例

clion连接虚拟机的方法
为了以后方便,直接上流程

  • 获取时间:get_time.c
#include 
#include 
#include "get_time.h"

char* GetTime(time_t now){
    struct tm *local;
    static char buf[15]; //记录时间xx-xx xx:xx:xx

    if(now <= 0){
        now = time(NULL);//获得当前的时间
    }

   local =  localtime(&now);
    if(local == NULL){
        perror("localtime error");
        return NULL;
    }

    snprintf(buf, sizeof(buf),"%02d-%02d %02d:%02d:%02d",
             local->tm_mon,local->tm_mday,local->tm_hour,local->tm_min,local->tm_sec);
    return buf;
}
  • 头文件:get_time.h
#ifndef GET_TIME_H
#define GET_TIME_H

#include 

extern char *GetTime(time_t now);

#endif
  • 主函数
#include 
#include "get_time.h"

int main() {
    printf("Content-Type:text/html;charset=utf-8rn");
    printf("rn");

    printf("CGI测试");
    printf("%s", GetTime(0));

    return 0;
}
  • Makefile
TARGET := ctest

CROSS_COMPILE :=
CC = $(CROSS_COMPILE)gcc
LD = $(CROSS_COMPILE)ld

OBJS := main.o
OBJS += get_time.o

CFLAGS += -Wall -I./inc
LDFLAGS +=

OUTPUT_DIR = /home/venom/web_prj/jobs/cgi/

all:$(TARGET)
$(TARGET):$(OBJS)
	$(CC) $(LDFLAGS) $^ -o $@
	cp $@ $(OUTPUT_DIR)

%.o:%.c
	$(CC) $(CFLAGS) -c $^ -o $@

clean:
	rm -f $(TARGET) $(OBJS)



嫌麻烦直接用mian函数随便打印一个再编译就行,Makefile还有点小问题

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/950096.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号