进程与线程的通信

        首先要知道的是,进程是资源分配的最小单位,线程是资源调度的最小单位。PCB为进程控制块。

一、进程

1.创建新(子)进程函数

pid_t fork(void);

//该函数执行成功之后,在新的子进程中其返 回值为 0 ,在原来的父进程中其返回值为大于 0 的正整数,该正整数就 是子进程的 PID
特点:
    1).会使得进程本身被完全复制,两个进程一模一样
    2). 进程号 PID不一致
    3).子进程会从 fork( )返回值后的下一条逻辑语句开始运行
    4).父子进程是相互独立的

2.覆盖原有文件代码,重新运行函数
int execl(const char *path, const char *arg, ...);
int execv(const char *path, char *const argv[ ]);
int execlp(const char *file, const char *arg, ...);

    path    :即将被加载执行的 ELF 文件或脚本的路径
    file    :即将被加载执行的 ELF 文件或脚本的名字
    arg    :以列表方式罗列的 ELF 文件或脚本的参数
    argv    :以数组方式组织的 ELF 文件或脚本的参数
    envp:用户自定义的环境变量数组
    注意:
        1).函数名带字母 l 意味着其参数以列表 (list) 的方式提供。
        2).函数名带字母 v 意味着其参数以矢量 (vector ) 数组的方式提供。
        3).函数名带字母 p 意味着会利用环境变量 PATH 来找寻指定的执行文件。
        4).函数名带字母 e 意味着用户提供自定义的环境变量。

3.退出函数
void _exit(int status);
void exit(int status);
    status:子进程的退出值
    注意:
        1.如果子进程正常退出,则 status 一般为 0。
        2.如果子进程异常退出,则 statuc 一般为非 0。
        3.exit( )退出时,会自动冲洗 (flush) 标准 I

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值