码迷,mamicode.com
首页 > 系统相关 > 详细

Linux下进程创建分析

时间:2016-04-08 15:28:50      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:进程linux

实际用户:表示你是谁,谁运行起来,用于标识信息eg:身份证,邀请函身份,非会员

有效用户:对某种资源是否具有某种权限,进程可能访问某些资源,普通用户不忍,身份变更才可访问资源

例如:在Linux系统下,root用户或普通用户都可以使用passwd命令来修改密码,修改密码主要通过修改etc文件来实现,而shadow文件权限全空,只有root有权限修改此文件。故当普通用户执行passwd命令时,它的权限在一瞬间得到提升,运行时以拥有者权限运行。

猜测运行结果,会打印几条消息??

#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
int main()
{
        int i=0;
        pid_t id;
        for(;i<2;++i)
        {
                id=fork();
                if(id==0){//child
                        printf("pid: %d,ppid: %d\n",getpid(),getppid());
                }
                else if(id>0){//father
                        printf("pid: %d,ppid: %d\n",getpid(),getppid());
                }
        }
        return 0;
}

技术分享

运行结果显示:用fork()创建子进程后执行的是和父进程相同的程序(但可能执行不同的代码分支:if条件判断分流)

后面的ppid为1显示他们变成了孤儿进程,被1号进程领养。

#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
int main()
{
        int i=0;
        pid_t id;
        for(;i<2;++i)
        {
                id=fork();
                if(id==0){//child
                        printf("pid: %d,ppid: %d\n",getpid(),getppid());
                }
                else if(id>0){//father
                        printf("pid: %d,ppid: %d\n",getpid(),getppid());
                }
        }
        printf("pid: %dHello\n",getpid());
        return 0;
}

技术分享


本文出自 “小止” 博客,请务必保留此出处http://10541556.blog.51cto.com/10531556/1761685

Linux下进程创建分析

标签:进程linux

原文地址:http://10541556.blog.51cto.com/10531556/1761685

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!