第一范文网 - 专业文章范例文档资料分享平台

linux实验报告

来源:用户分享 时间:2025/8/17 8:35:51 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

do_exec( arg, fd ); else do_cat( arg, fd ); } 服务器为每个请求创建一个新的进程来处理。子进程将请求分割成命令和参数。如果命令不是GET,服务器应答HTTP返回码表示未实现的命令。如果命令是GET,服务器将期望得到一个目录名,一个以 .cgi 结尾的可执行程序或文件名。如果没有该目录或指定的文件名,服务器报错。 如果存在目录或文件,服务器决定所要使用的操作:ls、exec或cat。 (2)目录列表函数

函数do_ls处理列出目录信息的请求: do_ls(char *dir, int fd) { FILE *fp ; fp = fdopen(fd,\ header(fp, \ fprintf(fp,\ fflush(fp); dup2(fd,1); dup2(fd,2); close(fd); execlp(\ perror(dir); exit(1); } 这里没有使用popen,而是通过调用ls命令,避免用户向shell popen传递任意字符串来运行的问题。 Webserv的源程序

main(int ac, char *av[]) { int sock, fd; FILE *fpin; char request[BUFSIZ]; if ( ac == 1 ){ fprintf(stderr,\ exit(1); } sock = make_server_socket( atoi(av[1]) ); if ( sock == -1 ) exit(2);

37

/* main loop here */ while(1){ /* take a call and buffer it */ fd = accept( sock, NULL, NULL ); fpin = fdopen(fd, \ /* read request */ fgets(request,BUFSIZ,fpin); printf(\ read_til_crnl(fpin); /* do what client asks */ process_rq(request, fd); fclose(fpin); } }

运行Web服务器:

编译程序,并在某个端口(建议用80)运行它: $cc webserv.c socklib.c –o webserv $./webserv 80

现在可以访问Web服务器,网址为http://yourhostname/。将html文件放到该目录中并用http://yourhostname/filename.html来打开它。创建下面的shell脚本: #!/bin/sh

printf ―Content-type: text/plain\\n\\nhello\\n‖;

将它命名为hello.cgi,用chmod改变权限为755,然后用浏览器调用该程序:http://yourhostname/hello.cgi。

评价表格 考核标准 (1)正确理解和掌握实验所涉及的概念和原理(20%); (2)按实验要求合理设计数据结构和程序结构(20%); (3)能设计测试用例,运行结果正确(20%); (4)认真记录实验数据,原理及实验结果分析准确(20%); 得分 (5)实验过程中,具有严谨的学习态度和认真、踏实、一丝不苟的科学作风(5%); (6)所做实验具有一定的创新性(5%); (7)实验报告规范(10%)。 38

39

搜索更多关于: linux实验报告 的文档
linux实验报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c2uo9m55p4c175ln25rn8_10.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top