在C中从命令行管道化文件

时间:2016-03-11 01:23:07

标签: c file command-line io

我需要以下列方式从命令行访问提供给程序的文件:./myProgram < filename

我认为你可以使用命令行参数(argv和argc)来做到这一点,但现在意识到情况并非如此。我只是想知道这个文件的输入位置(名称或其他),所以我可以访问它。

提前致谢!

1 个答案:

答案 0 :(得分:0)

如果您使用的是unix shell(zsh,bash等)并执行./myProgram <filename之类的操作,则该程序不会在<filename中收到argv阵列。相反,shell使用<解析部件并重定向程序的输入,使其来自文件filename

有关i / o重定向的更多信息here

所以,你写的就像是从stdin读取一样(因为你 从stdin读取):

#include <stdio.h>
int main() 
{
    char str[200];
    int i;
    scanf("%s", str);
    scanf("%d", &i);
    printf("%s %d\n", str, i);
}