Tinyhttpd 知识点

Posted qifei-liu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tinyhttpd 知识点相关的知识,希望对你有一定的参考价值。

1. fork 子进程

 1 #include <stdio.h>
 2 #include <unistd.h>
 3 
 4 int main(void)
 5 {
 6     pid_t pid;
 7     int count = 0;
 8     pid = fork();
 9     while(1){
10         if(pid < 0)
11             printf("error in fork");
12         else if(pid == 0){
13             printf("i am the child process, my process id is %d\n",getpid());
14             count ++;
15             printf("count is:%d\n",count);
16             sleep(1);
17         }else{
18             printf("i am the parent process,my process id is %d\n",getpid());
19             printf("count is:%d\n",count);
20             sleep(1);
21         }
22     }
23     return 0;
24 }

运行结果:

i am the parent process,my process id is 8490
count is:0
i am the child process, my process id is 8491
count is:206

可以看出 子进程和 父进程之间的参数 count 不是同一个参数

├─sshd─┬─sshd───bash───pstree
        │      ├─sshd───bash───a.out───a.out
        │      └─sshd───bash

从pstree 指令中可以看出 a.out 之间的关系

[[email protected] tinyhttpd_qf]# ps -ef|grep a.out
root      8655  7712  0 05:31 pts/3    00:00:00 ./a.out
root      8656  8655  0 05:31 pts/3    00:00:00 ./a.out
root      8694  7423  0 05:33 pts/2    00:00:00 grep --color=auto a.out

现在我把 a.out 子进程 kill 掉

发现只有 父进程在独自运行

 am the parent process,my process id is 8655
count is:0
i am the parent process,my process id is 8655
count is:0
i am the parent process,my process id is 8655
count is:0

重启 程序,然后先kill 父进程

发现只有子进程在 独立运行

 is:49
i am the child process, my process id is 8780
count is:50
i am the child process, my process id is 8780
count is:51
i am the child process, my process id is 8780
count is:52
i am the child process, my process id is 8780
count is:53
i am the child process, my process id is 8780

 

以上是关于Tinyhttpd 知识点的主要内容,如果未能解决你的问题,请参考以下文章

Tinyhttpd for Windows

C开源代码学习1 Tinyhttpd

Tinyhttpd精读解析

升级tinyhttpd-0.1.0,让其支持网页显示图像

Tinyhttpd - 超轻量型Http Server,使用C语言开发,全部代码只有502行(包括注释),附带一个简单的Client

Linux中部署服务器Tinyhttpd并用Webbench测试抗压性能