gpt4 book ai didi

检查来自 C 程序的 UNIX 命令行参数、管道和重定向

转载 作者:行者123 更新时间:2023-12-02 21:29:42 25 4
gpt4 key购买 nike

一旦发现缺少命令行参数,我就无法弄清楚如何维护 shell 的管道和重定向功能。

例如,如果我使用 scanf 调用,它将与来自 shell 的重定向或管道一起使用,但如果没有这个,我会收到一个提示,这是我不想要的。

我想通过 argv[]、管道或重定向接受命令行参数,但我不知道如何在没有提示的情况下执行此操作。例如,如果我尝试这样的事情:

if(argc < 2)
exit(0);

如果我尝试这样做,程序将终止:

echo arg | myProgram

或者这个:

myProgram < fileWithArgument

我试图查一下这个,但我总是得到一些 bash 脚本引用。

最佳答案

处理此类情况的常见方法是使用 isatty 检查标准输入流是否连接到终端。或类似的功能,具体取决于您的操作系统。如果是,则从命令行获取参数,如果不是(已重定向),则读取标准输入。

关于检查来自 C 程序的 UNIX 命令行参数、管道和重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2216529/

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