资讯专栏INFORMATION COLUMN

linux下的进程(1)

Jackwoo / 993人阅读

摘要:函数的原型这个函数的主要主要特色是返回两次值,子进程返回,父进程返回子进程。运行的结果如下当我们在那两个代码块加入循环时,就可以发现子进程和父进程,可以说时各自独立的,它们之间没有先后关系。

linux下创建新的进程
进程时每一个系统下必不可少的一个部分。每一个进程都有一个非负证整数的唯一进程ID。进程ID标识符总是唯一的。一般在linux创建一个进程是同fork()函数的。

函数fork()的原型

pid_t fork(void)

这个函数的主要主要特色是返回两次值,子进程返回0,父进程返回子进程ID。出错则返回-1。通过实例来了解一下这个函数。

#include 
#include 
#include    
#include 

int main(void)
{
    pid_t pid;
    int globalx = 2;
    if ((pid = fork()) > 0){
        int a = 1;
        printf("parent is %d 
",a)
    }
    else if (pid == 0) {
        int a = 1;
        a++;
        printf("child is %d 
",a);
    }
    else {
        printf("error");
    }
    printf("all have: %d 
",globalx);
    exit(0);
}

运行的结果如下

由这个例子的看的出来,他们唯一的区别只是在pid>0下的代码和pid==0下的的代码。fork()之后父函数和子函数实现不同的代码段,而且相互之间并不影响。
我们在再看下一个例子。

#include 
#include 
#include    
#include 

int main(void)
{
    pid_t pid;
    int globalx = 2;
    if ((pid = fork()) > 0){
        int a = 1;
        for(int i=0;i<10;i++)
            printf("parent is %d 
",a);
    }
    else if (pid == 0) {
        int a = 1;
        a++;
        for(int i=0;i<10;i++)   
            printf("child is %d 
",a);
    }
    else {
        printf("error");
    }
    printf("all have: %d 
",globalx);
    exit(0);
}

运行的结果如下

当我们在那两个代码块加入循环时,就可以发现子进程和父进程,可以说时各自独立的,它们之间没有先后关系。如果子进场和父进程同时对一个文件进行操作,则需要考虑到这一点。

以上基本上是fork()函数两大特点。如果有错误和遗漏的地方,欢迎指出和补充。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/9973.html

相关文章

  • linux下的进程(2)

    摘要:下的函数孤儿进程孤儿进程是父进程结束,还存在子进程没有结束,那么这个子进程则成为孤儿进程,孤儿进程自动将进程作为自己的父进程。这种进程成为僵尸进程。下面的是结果从结果可以看出在子进程终止前,使其调用者阻塞。 linux下的wait()函数 孤儿进程孤儿进程是父进程结束,还存在子进程没有结束,那么这个子进程则成为孤儿进程,孤儿进程自动将init进程作为自己的父进程。 僵尸进程子进程终止时...

    cheng10 评论0 收藏0
  • 全栈开发——Linux

    摘要:是由林纳斯托瓦兹起初开发的,由于源代码的开放性,现在已经衍生出了千上百种不同的系统。而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般。 一、Linux的简介1.Linux的概述Linux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境。Linux是由Linus Torvalds(林纳斯·托瓦兹)起初开发的,由于源代码的开放...

    plokmju88 评论0 收藏0
  • 初学linux指导(一)

    摘要:有个建议,一定要学一下,一定要学一下,一定要学一下,重要的事情说三遍。 首先,要学Linux编程,你得会用Linux,也就是得在命令行环境下生存下来。什么叫生存下来呢?就是我现在给你一台主机,键盘,显示器啥的,然后给你一个服务器版的Linux系统的光盘或者其他什么安装盘,你去把这台主机用起来。什么叫用起来呢?你平常用Windows电脑干啥,你现在还用这台电脑干啥。新建文件啊,查看文件,...

    zzzmh 评论0 收藏0
  • linux查看进程启动及运行时间

    摘要:查看进程启动时间及运行多长时间。用字符显示树状结构,表达程序间的相互关系。列出程序时,包括已中断的子程序资料。显示该用户下的所有进程,且显示各个命令的详细路径。 linux查看进程启动时间及运行多长时间。 ps -eo lstart 启动时间 ps -eo etime 运行多长时间. ps -eo pid,lstart,etime | grep 5176 用linux ps查询进程...

    mrcode 评论0 收藏0
  • linux上定期执行命令、脚本(cron,crontab,anacron)

    摘要:用执行的任务适合于小时运行的机器,执行的任务会在设定好的时刻执行,当机器处于关机状态下并错过了任务执行的时间,任务就无法预期执行了。两个文件中每个用户名占一行,并且不允许出现空格。任务标识其目的是识别消息,日志文件和执行特殊操作。 人类把时间做了切割,想象一条笔直的线永远向前,本来这条直线上什么都没有,但是人类根据时间的长短(单位)在这条直线上做了密密麻麻的标记(世纪-年-月-日-时-...

    douzifly 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<