首先是网上说的将index.html的访问权限改为不可执行,参考第一个评论https://zhuanlan.zhihu.com/p/105656761
但是还是浏览器运行后一直显示加载,我使用gdb调试后发现,clint_sock本来是4但是在传入accept_request之后,赋给client的值是-8764

此时我注意到了intptr_t并查阅了相关的资料,发现这个类型的大小等于机器的位数,由此保证void转换成立,但是我编写了一个程序发现这个转化后的值等于指针的值而不是client的值,因此我将int client=(intptr_t)arg;改为了int client=(int*)arg;使得浏览器可以访问,但是这个用法不知道是哪里出现了问题。

最后输入颜色没有显示的问题是由于perl路径设置错误,输入which perl获得perl的路径,在check.cgi和color.cgi中的第一行的路径改为自己的就可以了。
希望可以帮到一些和我遇到同样问题的人
首先是网上说的将index.html的访问权限改为不可执行,参考第一个评论https://zhuanlan.zhihu.com/p/105656761


但是还是浏览器运行后一直显示加载,我使用gdb调试后发现,clint_sock本来是4但是在传入accept_request之后,赋给client的值是-8764
此时我注意到了intptr_t并查阅了相关的资料,发现这个类型的大小等于机器的位数,由此保证void转换成立,但是我编写了一个程序发现这个转化后的值等于指针的值而不是client的值,因此我将int client=(intptr_t)arg;改为了int client=(int*)arg;使得浏览器可以访问,但是这个用法不知道是哪里出现了问题。
最后输入颜色没有显示的问题是由于perl路径设置错误,输入which perl获得perl的路径,在check.cgi和color.cgi中的第一行的路径改为自己的就可以了。
希望可以帮到一些和我遇到同样问题的人