tinyhttpd阅读之一
介绍
github上搜tinyhttpd,靠前的就两个项目:EZLippi-Tinyhttpd 、 cbsheng-tinyhttpd
我这里就是下载了第二个cbsheng的,因为他注释比较多,哈哈。
该项目很适合初学者进行学习研究,所以废话不多说,把项目clone下来,进行debug吧。RamboQiu/tinyhttpd-Tutorial
##先把程序跑起来
1
2
3
tinyhttpd-Tutorial|master⚡ ⇒ make
tinyhttpd-Tutorial|master⚡ ⇒ ./httpd
httpd running on port 49535
输入blue颜色,点击提交,噶,一片空白,原因是mac系统的perl命令的文件路径错了。
进入color.cgi将/usr/local/bin/perl 改为/usr/bin/perl即可
1
2
-#!/usr/local/bin/perl -Tw
+#!/usr/bin/perl -Tw
重新编译运行
Debug
c项目头疼的就是没有直观的像是xcode一样的直接debug的能力,需要自己去集成。
项目源码猜测的是使用lldb或事gdb的形式进行调试的,因为没有看到.vscode或是cmakefile。这几种调试方式区别具体见:从开源项目重学C语言-vscode配置
引用:建议源码阅读顺序: main -> startup -> accept_request -> execute_cgi, 通晓主要工作流程后再仔细把每个函数的源码看一看。
相关配合资源下载
tlpi全称The Linux Program Interface,有中英文书籍,见百度网盘 密码: 24qj
本文由作者按照 CC BY 4.0 进行授权