谁为我们打开了STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO,标准输入、标准输出和标准错误

谁为我们打开了STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO,标准输入、标准输出和标准错误 呢 ?

答: 是shell。请参考上面的一篇BLOG,讲的是一个基本的shell-like的实现。

shell运行时候,首先应该打开三个文件描述符,然后,从终端获得输入,然后fork出一个进程来执行输入的程序。fork出来的进程和shell主进程是父子关系,就是说,fork出来的进程跟shell进程是子和父的关系,可能子进程会共享父进程的资源(暂时还不清楚,等看完UNIX环境的第8章才会明白)。而我们的main函数是被exec函数执行的,父进程的已经打开的文件描述符,子进程是可以使用的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值