广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 计算机学校 > 湛江计算机学校 > 正文

Linux进程的创建讲解_湛江Linux网络技术

作者:admin发布时间:2020-11-25分类:湛江计算机学校浏览:972


导读:Linux进程的创建讲解  fork函数在Linux下产生新的进程的系统调用,这个函数名是英文中“分叉”的意思。为什么取这个名字呢?因为一个进程在运行中,如果使用了fork,就产...

Linux进程的创建讲解

  fork函数在Linux下产生新的进程的系统调用,这个函数名是英文中“分叉”的意思。为什么取这个名字呢? 因为一个进程在运行中,如果使用了fork,就产生了另一个进程,于是进程就“分叉”了,所以这个名字取得很形象。fork的语法如下所示:


  代码如下:

  #include

  #include

  pid_t fork();


  在Linux网络编程中经常用到fork()系统调用。例如在一个客户机/Web服务器构建的网络环境中,Web服务器往往可以满足许多客户端的请求。如果一个客户机要访问Web服务器,需要发送一个请求,此时由服务器生成一个父进程,然后父进程通过fork()系统调用产生一个子进程,此时客户机的请求由子进程完成。父进程可以再度回到等待状态不断服务其他客户端。


  有一个更简单的执行其他程序的函数system,参数string传递给一个命令解释器(一般为sh)执行,即string被解释为一条命令,由sh执行该命令。若参数string为一个空指针,则检查命令解释器是否存在。该命令可以和同命令行下的命令形式相同,但由于命令作为一个参数放在系统调用中,应注意编译时对特殊意义字符的处理。命令的查找是按PATH环境变量的定义执行的。命令所生成的后果一般不会对父进程编程造成影响。


        返回值:当参数为空指针时,只有当命令解释器有效时返回值为非零。若参数不为空指针,返回值为该命令的返回状态(同waitpid())的返回值。命令无效或语法错误则返回非零值,所执行的命令被终止。其他情况则返回-1.它是一个较高层的函数,实际上相当于在shell下执行一条命令,除了system之外,系统调用exec来执行一个可执行文件,来代替当前进程的执行映像。系统调用exit的功能是终止发出调用的进程。sleep函数调用用来指定进程挂起的秒数。wait函数族用来等待和控制进程。poppen函数和system函数类似,区别是它用管道方式处理输出。


  父进程和子进程的关系是管理和被管理的关系,当父进程终止时,子进程也随之而终止。但子进程终止时,父进程并不一定终止。比如httpd服务器运行时,我们可以杀掉其子进程,父进程并不会因为子进程的终止而终止。


湛江计算机学校排行
标签列表
网站分类
文章归档
最近发表