在文件名和命令行输入之间区分C?

时间:2014-10-14 07:27:27

标签: c

我的程序实现了一个基本的扫描程序。它应该能够处理文件输入和用户通过命令行手动输入输入。我的问题是能够找出它是什么,所以我可以适当地处理它。到目前为止的想法:

  1. 我可以假设文件或标准输入行中至少有一个空白字符。我认为我可以检查argv[1]是否有空格,如果没有,请假设它是文件名并打开文件。

  2. 或者,我可能会尝试使用this检查文件是否存在,如果是,则将其打开,否则将其作为命令行输入处理。

  3. 我缺少一个更简单的选项吗?这两个现有想法中的任何一个是否比另一个更有效和可靠?

1 个答案:

答案 0 :(得分:1)

执行此操作的常规方法是使用命令行选项。

某些程序需要"文件名"但请理解-表示stdin,如果输入预计有多行,则效果很好。

某些程序要求将其参数放在命令行上,但要理解@FILE表示应该打开并读取FILE,并将其全部内容扩展为就像在命令行中一样代替。

某些程序通常在命令行上使用参数,但也有办法从文件中获取它们,例如: awk -f FILEFILE而不是命令行读取其命令。

某些程序通常采用包含命令的文件名,但也提供显式选项,例如命令,例如bash -c "echo hello"

这只是对一些选项的快速调查;哪一个最适合您的应用程序是您需要决定的。您会注意到他们都没有使用简单的猜测来确定某些东西是否是某个文件(例如通过检查它是否存在);他们都非常明确(第一个阻止使用名为-的文件,但是什么样的动物会做这样的事情?)。