gpt4 book ai didi

c++ - 获取文件句柄作为参数

转载 作者:行者123 更新时间:2023-11-30 01:40:17 26 4
gpt4 key购买 nike

在 bash 重定向中,我问了一个 question得到如下答案。

With cat < file, cat reads from its standard input; the shell opens the file and connects the file handle to cat

现在,我很好奇这怎么可能。我的意思是,程序(由 C 或 C++ 实现)如何获取文件句柄作为参数。我知道只有字符(例如 char* argc[] )可以作为参数。

最佳答案

它并没有真正将其作为参数(至少不是命令行参数)。

当一个进程启动时(在类 UNIX 系统上),它会打开三个标准流:标准输入、标准输出和标准错误。如果您不重定向任何内容,标准输入将来自键盘,标准输出和标准错误都将转到屏幕(通过某些设备连接,例如 /dev)。

当您重定向标准流(输入、输出或错误)时,shell 打开该文件的句柄,然后进行必要的操作以将其设置为子级的指定标准流——例如,在系统上使用fork,它可以使用dup2将自己的标准句柄设置为指定文件,然后fork子进程,然后(在父进程中)恢复其标准流(这不是唯一可能的处理方式,只是一种可能性)。

关于c++ - 获取文件句柄作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43625953/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com