Здесь
printf("lel: %s",str1);
printf()
печатает данные в файловом потоке, где его точки и по умолчанию это поток stdout
, а поток stdout
буферизуется строкой, т.е. вам нужно очистить буфер, вызвавfflush(stdout)
или добавление \n
char.Например,
printf("lel: %s",str1);
fflush(stdout);
или
printf("lel: %s\n",str1); /* newline char has another use apart from giving newline i.e clear the buffer */
Или вы можете отключить буферизацию, позвонив setbuf()
.
, находясь здесь
write(STDOUT_FILENO,str1,18);
write()
- это системный вызов, который не является буферизованным IO, то есть он не буферизует данные, следовательно, он немедленно записывает данные в STDOUT_FILENO
.