在STDIN_FILENO

时间:2018-04-03 08:06:45

标签: c strcmp

        char buf[BUF_SIZE + 1];
        printf("[Enter Command]: \n");
        num_read = read(STDIN_FILENO, buf, BUF_SIZE);
        if (num_read == 5) {
            exit(0);
        }

我想检查用户输入是否为字符串"exit",如果是,则退出程序。上面的代码段有效,但它会在所有4个字母的字符串上退出。我只希望它退出字符串"exit"

我不明白为什么下面的代码不起作用:

if (strcmp("exit", buf) == 0) {
    exit(0);
}

1 个答案:

答案 0 :(得分:0)

由于strcmp()不是0终止输入,read()没有工作,所以它没有进行字符串输入。

使用例如fgets()读取一整行,然后检查它是否以exit开头(请记住它将包含换行符)。