使用Unix命令行的C程序的标准输入

时间:2013-09-19 23:16:35

标签: c unix stdin

我在C中有以下代码部分:

int main(int argc, char *argv[]) 
{
    char *input;
    int lines;
    int p;


    input = (char*)malloc(10);
    input = argv[0];
    for(p=0;p<10;p++)
    {
        printf("%c",input[p]);
    }

在我的Unix系统上,我进行以下调用:

./program_name.exe < inputfile

其中inputfile是包含以下内容的文件:000000010Z

我收到的前一个命令的输出是:

./program_

我错过了什么?

1 个答案:

答案 0 :(得分:1)

argv[0]包含正在执行的程序的名称。这是你唯一印刷的东西。

您尝试做的是从文件中读取,因为它是标准输入。但你仍然需要阅读它。使用getchar()或任何其他读取输入的函数。