第一课关于 fork 和 exec 函数的学习

来源:互联网 发布:数据分析入门教材 编辑:程序博客网 时间:2024/06/05 11:56

  

    1. 函数原型:pid_t fork(void)

        功能:完整地拷贝父进程的整个地址空间。

        课本例子:

        

        该程序 使用fork 函数新建了一个子进程,其中父进程返回子进程的PID,而子进程返回值为0;

       

注意点

        1.程序执行的时候,执行 fork 之后 父进程的 result 返回值应该为 子进程的PID,子进程返回0,可以用返回值判断当前是哪个进程。

        2.子进程是复制了父进程的所有内容,除了PID,因此在父进程中的变量改变了,子进程中并不会有改变。例子如下:

          

           结果可想而知输出结果:

           The value is 10

           The value is 10

 

         3. 和 vfork 不同的是,vfork 函数通过允许父子进程可访问相同物理内存,当子进程需要改变内存中数据时才拷贝父进程 (写操作时拷贝)

 

    2. 函数原型:int execl(const char, const char *arg,....) 

                       int execv(const char, char * const arg[],....)  

                       ...........     

        功能:进程执行另个程序调用的函数

        例子:

       

 

        注意点

                     1. exec 函数族 不能直接执行管道命令,那么如何使用exec 执行管道命令呢?

        

 

        课后作业:

              1.创建3个进程,其中一个为父进程,其余两个是该父进程创建的子进程,其中一个进程运行一条Linux指令(该指令 要带管道命

                 令 如 : ls -l | more),该条指令自定;另一个子进程在打印一条提示信息并暂停3秒后退出。要求创建新进程后要进行出错

                 处理。

       

        解答:请看 第一课习题之我的解决方案。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 赌博输了钱后悔怎么办 借赌博输了80万怎么办 赌博输了50万怎么办 手机赌博输了钱怎么办 内存卡是扩容卡怎么办 坐了过山车想吐怎么办 坐完摇椅想吐怎么办 玩完过山车想吐怎么办 做了过山车想吐怎么办 坐车后恶心想吐怎么办 太胖了想减肥怎么办 被集资诈骗的人怎么办 教了作业没写怎么办 移动4g网速慢怎么办 小孩装病不去上学怎么办 卖衣服顾客嫌贵怎么办 当顾客说再看看怎么办 读完高中没考上大学怎么办 手抖不会写字了怎么办 字认识写不出来怎么办 八四把衣服发黄怎么办 孩孑在学校被打怎么办 在学校有人打我怎么办 孩子在学校不爱说话怎么办 孩子上幼儿园不和小朋友玩怎么办 遇到有人要打你怎么办 被表白了怎么办神回复 学校要发展我该怎么办 如果有人要打你怎么办 梦见有人要杀我怎么办 如果有人要杀我怎么办 梦到有人要杀我怎么办 感觉有人要杀我怎么办 我很自卑 没自信怎么办 如果在学校被打怎么办 如果有人打我该怎么办 别人要砍我我怎么办 专四两次没过怎么办 3岁宝宝害羞胆小怎么办 人太老实被欺负怎么办 在外面被欺负了怎么办