主要功能在没有进入循环的情况下卡在循环中

时间:2016-01-18 17:01:33

标签: c loops main

我有一个任务是在Linux中进行tail命令的基本实现,并且进展顺利,但是当我运行它时它只是进入下一行并且什么都不做。这是代码:

int main(int argc, char *argv[])
{
    int counter;
    printf("program started");
    if(argc == 1)
    {
        printf("hello1");
        tailSTDIN();
    }
    else if(argc == 2)
    {
        printf("here");
        tailFile(argv[1]);
        printf("tailed");
    }
    else for(counter = 0; counter < argc; counter++)
    {
        printf("loop");
        if(argv[argc] == "-")
        {
            printTitle("standard input");
            tailSTDIN();
        }
        else
        {
            printTitle(argv[counter]);
            tailFile(argv[counter]);
        }
    }

    return 0;
}

好的,问题是它只是卡住了,它甚至没有到达第一个printf(),它说program started,它只是等待某事。不管我给它多少或什么论点,这都是。 如果你认为你需要完整的代码与其余的功能,我会把它放进去,但问题是它永远不会调用它们。

1 个答案:

答案 0 :(得分:2)

当您使用stdout输出行时,缓冲直到填满整个缓冲区或遇到换行符。 用\ n字符终止你的行:

printf("program started\n");

你会得到你的输出。