现在的位置: 首页 > 操作系统 > 正文

Linux下进程编程入门笔记

2020年02月10日 操作系统 ⁄ 共 1015字 ⁄ 字号 评论关闭

fork()系统调用

fork的作用是根据一个现有的进程复制出一个新 进程,原来的进程称为父进程(Parent Process) ,新进程称为子进程(Child Process)。系统中 同时运行着很多进程,这些进程都是从最初只有一个进程开始一个一个复制出来的。在Shell下输入 命令可以运行一个程序,是因为Shell进程在读取用户输入的命令之后会调用fork复制出一个新 的Shell进程,然后新的Shell进程调用exec执行新的程序。

例如:在Shell提示符下输入命令ls,首先fork创建子进程,这时父进程仍在执行/bin/bash程序,然后子进程调用exec执行新的程序/bin/ls

除了子进程和父进程的进程ID不同,其他资源一模一样。

——创建子进程

    函数原型:

    #include<sys/types.h> #include <unistd.h> pid_t fork(void);

返回值信息:(一次调用两次返回的性质) fork调用失败则返回-1, 成功调用后父进程中返回值为子进程的pid,在子进程中返回值为1 其执行顺序不定!

特点:调用一次,返回两次。

命令设置gdb

setfollow-fork-mode child 在fork之后跟踪子进程

set follow-fork-mode parent 则是跟踪父进程,然后用run命令,看到的现象是父进程一直在运行

demo:

#include <sys/types.h> #include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <erron.h>int main(int argc, char **argv) { pid_t m_pid; m_pid = fork(); if (pid < 0){ perror("fork failed"); exit(1); } if (m_pid == 0){ printf("i am child! \n"); } else { printf("i am parent! \n"); } return 0; }

本文永久更新链接地址:http://www.xuebuyuan.com/Linux/2017-01/140047.htm

以上就上有关Linux下进程编程入门笔记的相关介绍,要了解更多Linux进程编程,Linux下进程编程入门笔记,编程,Linux编程,Linux Shell,Android,Android教程,JAVA,C语言,Python,HTML5内容请登录学步园。

抱歉!评论已关闭.