Edit: I simplified the original code.
The code is:
#include <stdio.h>
#include <unistd.h>
int main(void)
{
printf("printf1\n");
write(1, "1 should be after printf\n", 25);
printf("printf2\n");
write(1, "2 should be after printf\n", 25);
return 0;
}
Unexpected result on Ideone:
1 should be after printf
2 should be after printf
printf1
printf2
Expected result on cs50
printf1
1 should be after printf
printf2
2 should be after printf
Why is the output order different?