【发布时间】:2013-04-24 02:51:11
【问题描述】:
我以为我在这里做一些简单的事情,但 C 决定对我进行异步处理。我不确定发生了什么事。这是我的代码:
#include <stdio.h>
int main() {
printf("start");
sleep(5);
printf("stop");
}
当我编译和运行时,我注意到sleep(5) 就像一个魅力。但编译器认为跳过第一个 printf() 并出现故障是个好主意,因此在运行时,程序等待 5 秒然后打印 startstop。
有什么关系?我的理论是程序使用 shell 启动打印操作,然后继续执行程序,让 Bash 等到程序不再忙于实际呈现字符串。但我真的不知道。
谢谢
【问题讨论】: