深入理解计算机系统 CSAPP 家庭作业11.10

A:

复制代码
//home.html
<form action="/cgi-bin/adder" method="GET">
  <ul>
    <li>
      <label for="n1">n1:</label>
      <input type="text" id="n1" name="n1" /> //name的值决定页面提交后,生成的地址。
    </li>
    <li>
      <label for="n2">n2:</label>
      <input type="text" id="n2" name="n2" /> //name的值决定页面提交后,生成的地址。
    </li>
	<li class="button">
	<button type="submit">Send</button>
	</li>

  </ul>
</form>

home.html放在根目录.那样访问127.0.0.1:XX的时候会直接跳转到这个提交数据的页面.

html文件中的name决定用户点击Send按钮后跳转的地址后的参数名.

复制代码
//adder.c
#include "csapp.h"

int main(void) {
    char *buf, *p;
    char arg1[MAXLINE], arg2[MAXLINE], content[MAXLINE];
    int n1=0, n2=0;

    /* Extract the two arguments */
    if ((buf = getenv("QUERY_STRING")) != NULL) {
	p = strchr(buf, '&');
	*p = '\0';
	sscanf(buf,"n1=%d",&n1); 	//此处决定读取地址的格式
	sscanf(p+1,"n2=%d",&n2);    //此处决定读取地址的格式
    }

    /* Make the response body */
    sprintf(content, "Welcome to add.com: ");
    sprintf(content, "%sTHE Internet addition portal.\r\n<p>", content);
    sprintf(content, "%sThe answer is: %d + %d = %d\r\n<p>", 
	    content, n1, n2, n1 + n2);
    sprintf(content, "%sThanks for visiting!\r\n", content);
  
    /* Generate the HTTP response */
    printf("Connection: close\r\n");
    printf("Content-length: %d\r\n", (int)strlen(content));
    printf("Content-type: text/html\r\n\r\n");
    printf("%s", content);
    fflush(stdout);

    exit(0);
}

adder.c文件中的sscanf中的按格式输入是"n1=%d",这里是和html文件对应的. .adder程序是从html文件生成的地址中读取变量的.

相关推荐
Fcy64832 分钟前
Linux下 进程间关系与守护进程
linux·运维·服务器·守护进程
码农小韩1 小时前
Linux驱动理论(二)——Linux字符设备驱动
linux·嵌入式软件开发·linux操作系统·linux应用开发·linux驱动理论
well06121 小时前
Linux粘滞位与Makefile机制深度解析
linux·运维·服务器
再写一行代码就下班1 小时前
linux sh脚本在windows修改导致无法使用解决方式
java·linux·centos
额额额对了2 小时前
SPI通信
linux·c语言·汇编·单片机·嵌入式硬件·arm
子木HAPPY阳VIP2 小时前
Ubuntu 关闭防火墙操作步骤
linux·运维·ubuntu
王振超wzc2 小时前
嵌入式开发环境搭建--WM软件安装,Ubuntu操作系统安装
linux·运维·ubuntu
GeW4 小时前
制造强国底座:Linux与数据库驱动的新型工业基础设施
linux
xiaoye-duck4 小时前
《Linux 网络编程》深入理解 IO 多路复用:select 函数详解与 Echo 服务实战
linux·网络
Tairitsu_H4 小时前
[Linux系统] 命令行参数 | 环境变量 | 程序地址空间
linux·环境变量·命令行参数·程序地址空间