我正在尝试在 Unix 环境中运行 C 程序,并且我也有一个输入文件。老师说我们输入就可以运行
gcc programName ./a.out inputFile
或
gcc programName ./a.out inputFile > viewFile
我的问题是:这在 C 程序中是如何处理的?例如,输入文件是否被添加为 main
的参数(或类似其名称或其他内容),或者它的行为是否像从 system.in
或其他内容读取?
我收到一条消息,指出打开输入文件时出错,并且我有 int main(int argc, char* argv[])
。如果有人可以解释发生了什么以及如何处理输入文件,我将非常感激。
最佳答案
您的教授提到了两种调用文件的方法:
./a.out inputFile
./a.out inputFile > viewFile
对于两种形式:
argc
将是2
。argv[0]
是代表程序名称的字符串,argv[1]
将是"inputFile"
。
POSIX shell 将 > filename
解释为将程序的输出(特别是 stdout)重定向到给定的文件名。
从程序的角度来看,命令重定向不会出现在参数列表中(尽管通常有特定于系统的方法来查找原始命令行)。
关于c - 尝试在 Unix 上运行 C 程序,但对输入文件的处理方式有点困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39551669/