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

来源:互联网 发布:淘宝有哪些直通车 编辑:程序博客网 时间:2024/06/05 09:09

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

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

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

0 0
原创粉丝点击