printf没输出,什么原理

printf没有输出,什么原理?
#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>

int main(void) {
//int fd;
//fd = open("/dev/fd/1",O_WRONLY|O_CREAT|O_TRUNC,0700);
write(STDOUT_FILENO,"你看得到我吗?\n",21);
//system("cat temp");
printf("什么情况?\n");
fflush(stdout);
return EXIT_SUCCESS;
}


输出结果是:


你看得到我吗?

------解决方案--------------------
用GCC编译运行可以输出:
你看得到我吗?
什么情况?