美文网首页
# 系统编程(系统函数)进程

# 系统编程(系统函数)进程

作者: 笑我飘零丶 | 来源:发表于2020-03-04 00:58 被阅读0次

eg:进程函数,getpid() getppid()

getpid()//获取当前进程的id
getppid()//获取当前进程的父进程的id   a.out的id
kill -9 进程id  //杀死这个进程

eg:fork()//进程分裂
//有两个返回值
//在父进程中,fork返回新创建子进程的进程PID。
//在子进程中,fork返回0。

#include<unistd.h>
#include<sys/types.h>
#include<stdio.h>
int main()
{
    int pid=fork();
    printf("pid_fork=%d\n",pid);
    if(pid>0){
        //父进程
        printf("father\n");
        printf("pid=%d\n",getpid());
        printf("ppid=%d\n",getppid());
        while(1);//一直运行这个父进程
    }
    else if(pid==0){
        //子进程
        printf("child\n");
        printf("pid=%d\n",getpid());
        printf("ppid=%d\n",getppid());
        while(1);
    }
}

eg:通过fork()衍生出的孤儿进程,父进程执行完,子进程持续执行,ctrl+c也退不掉,得用kill

#include<unistd.h>
#include<sys/types.h>
#include<stdio.h>
int main()
{
    int pid=fork();
    printf("pid_fork=%d\n",pid);
    if(pid>0){
        //父进程
        printf("father\n");
        printf("pid=%d\n",getpid());
        printf("ppid=%d\n",getppid());
    }
    else if(pid==0){
        //子进程
        printf("child\n");
        printf("pid=%d\n",getpid());
        printf("ppid=%d\n",getppid());
        while(1);
    }
}

eg:僵尸进程 Z 子进程没有被父进程回收掉就执行完了,父进程一直在执行

int main()
{
    int pid=fork();
    printf("pid_fork=%d\n",pid);
    if(pid>0){
        //子进程
        printf("father\n");
        printf("pid=%d\n",getpid());
        printf("ppid=%d\n",getppid());
    }
    else if(pid==0){
        //父进程
        while(1){
        sleep(2);//睡眠函数,停顿两秒
        printf("child\n");
        printf("pid=%d\n",getpid());
        printf("ppid=%d\n",getppid());
        }
    }
}

eg:system()调用系统命令

system(linux命令);//system("ll");  system("ps-ef"); system("mkdir"); system("./a.out");linux命令不能是cd

eg:execl() system()可以继续执行当前进程,而execl()执行完一个就不往下面执行了

execl("/bin/ls","ls","-l",NULL);
//类似于system();

相关文章

  • # 系统编程(系统函数)进程

    eg:进程函数,getpid() getppid() eg:fork()//进程分裂//有两个返回值//在父进程...

  • 系统编程--进程函数

    一、fork() 拷贝父进程,子进程的fork不执行,返回0,执行fork之后的所有代码父进程的fork返回子进程...

  • 【linux/unix系统编程手册笔记】系统编程概念

    【Linux/Unix系统编程手册笔记】系统编程概念 1.系统调用 系统调用: 创建新进程 执行I/O 进程间通信...

  • 对 fork 函数的思考和理解

    fork函数通过系统调用创建一个与原来进程几乎完全相同的进程。一个进程调用fork()函数后,系统先给新的进程分配...

  • 进程线程-导读

    一:引出 进程线程与文件IO一起,一般也叫做系统编程,系统编程,顾名思义,就是与操作系统有关系的编程,那么系统编程...

  • # 系统编程(系统函数)

    eg:exit() _exit() eg:wait() eg: WEXITSTATUS宏 eg:waitpid()

  • 系统编程-------进程编程

    多进程编程 1、进程的创建 1.1 复制创建新的进程 fork(); 参数: 无 返回值: 成功,子进程的id号,...

  • 2018-08-14 fork

    【转】进程系统调用——fork函数深入理解

  • 系统编程---进程

    ·程序执行到os.fork()时,操作系统会创建一个新的进程(子进程),然后复制父进程的所有信息到子进程中 ·然后...

  • Docker相关技术简介

    namespace(命名空间) 编程语言     封装 →代码隔离操作系统    系统资源的隔离    进程、网...

网友评论

      本文标题:# 系统编程(系统函数)进程

      本文链接:https://www.haomeiwen.com/subject/yqpdlhtx.html