18、UNIX进程与线程:环境与exec系统调用详解

UNIX进程与线程:环境与exec系统调用详解

1. 引言

在UNIX系统中,多任务处理是其核心特性之一。接下来我们将深入探讨如何使用 exec fork wait 等系统调用来调用程序和创建进程。我们的目标是逐步实现一个功能较为完整的命令解释器,也就是shell。首先从一个功能有限、勉强可用的shell开始,然后不断添加功能,最终使其能够处理I/O重定向、管道、后台进程、带引号的参数以及环境变量等。

2. 环境

在UNIX系统中,当一个程序被执行时,它会从调用它的进程那里接收两部分数据:参数和环境。对于C和C++程序来说,这两部分数据都以字符指针数组的形式存在,数组的最后一个指针为 NULL

C或C++程序的入口函数 main 有两种形式:

int main(
    int argc,
    /* argument count */
    char *argv[]
    /* array of argument strings */
)
int main(void)

其中, argc 表示参数的数量,但不包括终止 argv 数组的 NULL 指针。如果程序不需要参数,可以省略 argc argv ,如第二种形式。

<
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值