进程相关函数

本文介绍了Linux系统中与进程管理相关的函数,包括fork用于创建子进程,exec函数族用于替换进程,exit和_exit用于进程退出,以及wait和waitpid用于等待子进程并获取其退出状态。详细讲解了各函数的工作原理和注意事项,如孤儿进程与僵尸进程的产生及避免。
摘要由CSDN通过智能技术生成

 

进程相关函数------>fork exec函数族 exit/_exit   wait/waitpid

1.fork

        作用:创建一个子进程

        (创建方式:子进程复制了父进程的所有的内容,他和父进程的进程号不同)

        pid_t  fork(void);

        无入参

        返回值:创建失败 ,-1

                      创建成功 0或pid(0->子进程  子进程的进程号-->父进程)

#include<stdio.h>
#include<sys/types.h>
#include<unistd.h>

int main()
{
    pid_t pid=-1;
    printf("hello nihao!!!!!\r\n");
    pid = fork();
    if(-1 == pid)
    {
        return -1;
    }
    if(0 == pid)//child process
    {
        printf("child process,pid=%d,parent pid=%d\r\n",getpid(),getppid());
    }
    else//pid > 0 parent process
    {
        printf("parent process,parent pid=%d,pid=%d\r\n",getpid(),pid);
    }
    printf("hello word!!!!!!!\r\n");
    return 0;
}

        孤儿进程:父进程先于子进程退出,子进程由init进程收养,此时子进程就是孤儿进程,pstree查看。孤儿进程可单独存在,没有危害。

#include<stdio.h>
#include<sys/types.h>
#include<unistd.h>

int main()
{
    pid_t pid=-1;
    printf("hello nihao!!!!!\r\n");
    pid = fork();
    if(-1 == pid)
    {
        return -1;
    }
    if(0 == pid)//child process
    {
        sleep(10);
        printf("chi
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
c语言提供了一些用于进程操作的相关函数。下面简要介绍几个常用的函数。 1. fork()函数:该函数用于创建新的进程。调用该函数会复制当前进程,使得原进程和新进程同时运行。原进程称为父进程,新进程称为子进程。父子进程的代码段和全局变量相同,但拥有独立的栈空间和唯一的进程ID。 2. exec()函数族:exec函数族用于在一个进程中执行新的程序。这些函数会在调用进程的地址空间中加载新的程序,并开始执行。exec函数族的几个常用函数有:execv()、execvp()、execve()。这些函数通过传递命令行参数、环境变量等信息,用新程序替换当前进程。 3. wait()函数:该函数用于使父进程等待子进程执行结束,并获取其退出状态。当子进程终止时,父进程可以根据wait函数返回的状态信息,判断子进程的终止方式和退出状态。如果子进程尚未终止,调用wait函数会使父进程阻塞,直到有子进程结束。 4. kill()函数:该函数用于向指定的进程发送信号。进程之间可以通过信号来通信,比如终止进程、暂停进程等。kill函数通过指定目标进程进程ID和信号编号,向目标进程发送信号。 5. getpid()函数:该函数用于获取当前进程进程ID。每个进程有唯一的进程ID,可以通过getpid函数获取该进程ID。这对于进行进程管理和进程间通信很有用。 总之,C语言提供了丰富的进程操作相关函数,可以用于创建、替换、等待进程,以及发送信号等操作。这些函数进程管理和进程间通信提供了丰富的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值