Fgets while 循环,编译器警告语句无效

Fgets while loop, compiler warning about a statement with no effect

我该怎么做才能消除编译器关于无效语句的警告? 我正在使用 fgets 读取 bash 命令的输出,但除了将它输出到我的缓冲区外,我不需要或不想对它做任何事情。

while (fgets(pid, sizeof(pid), fp) != NULL) {
    1; //Statement with no effect :(
}

为什么会有 1; 行?你可以有空 while 循环

while (fgets(pid, sizeof(pid), fp) != NULL) {
}

或者

while (fgets(pid, sizeof(pid), fp) != NULL); // Note semi-colon

可能最好避免第二种选择,因为它更容易误解正在发生的事情。