文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Linux中进程fork()的示例分析

2023-06-09 17:06

关注

这篇文章给大家分享的是有关Linux中进程fork()的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

Linux fork()详解:

在开始之前,我们先来了解一些基本的概念:

程序, 没有在运行的可执行文件  

   进程,  运行中的程序   

进程调度的方法:  

    按时间片轮转  
    先来先服务 
    短时间优先 
    按优先级别   

进程的状态:       

        就绪   ->>   运行  ->> 等待 
        运行 ->> 就绪 //时间片完了 
        等待 ->> 就绪 //等待的条件完成了   

查看当前系统进程的状态 ps auxf 

status: 

D    Uninterruptible sleep (usually IO) 
R    Running or runnable (on run queue) 
S    Interruptible sleep (waiting for an event to complete) 
T    Stopped, either by a job control signal or because it is being traced. 
W    paging (not valid since the 2.6.xx kernel) 
X    dead (should never be seen) 
Z    Defunct ("zombie") process, terminated but not reaped by its parent. 
<    high-priority (not nice to other users) 
N    low-priority (nice to other users) 
L    has pages locked into memory (for real-time and custom IO) 
s    is a session leader 
l    is multi-threaded (using CLONE_THREAD, like NPTL pthreads do) 
+    is in the foreground process group   

父进程/子进程 , 让一个程序运行起来的进程就叫父进程, 被调用的进程叫子进程   

getpid //获取当前进程的进程号 
   getppid //获取当前进程的父进程号   

fork //创建一个子进程,创建出来的子进程是父进程的一个副本, 除了进程号,父进程号不同。  

    子进程从fork()后开始运行, 它得到的fork返回值为0 
    父进程得到的返回值为子进程的进程号 
    返回值为-1时, 创建失败

来看一个程序:

#include <stdio.h> #include <unistd.h>  int main(void) {   pid_t pid ;    //printf("hello world \n");    //从fork开始就已经产生子进程   pid = fork();  //就已经产生新的4G空间,复制空间   //创建出来的子进程是父进程的一个副本,除了进程号,父进程号和子进程号不同   //printf("hello kitty\n");   if(pid == 0)     {     //子进程运行区      printf("child curpid:%d parentpid:%d \n" , getpid() , getppid());     return 0 ;    }    //父进程运行区   printf("parent curpid:%d parentpid:%d \n" , getpid() , getppid());    return 0 ;  }

感谢各位的阅读!关于“Linux中进程fork()的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-人工智能
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯