【发布时间】:2021-12-27 20:44:07
【问题描述】:
当我执行下面的代码时,睡眠函数会在两个打印语句之前执行。
#include <stdio.h>
#include <unistd.h>
int main(void) {
printf("before\n");
sleep(4);
printf("after");
return 0;
}
所以而不是:before -> *waits 4 seconds* -> after
它执行:*waits 4 seconds* -> before -> after
【问题讨论】:
-
我无法重现这个——如果我在终端中运行它,我会得到预期的行为。您是否将输出重定向到文件(这将导致块缓冲而不是行缓冲)?
-
它给了我正确的顺序。