SLEEP: (Sleep or usleep) не приостанавливает все в моей ветке в Linux, но в Windows?Зачем? - PullRequest
0 голосов
/ 02 июля 2019

В Windows:

    for (int i = 0; i < 100; i++)
    {
      Sleep(100);    // Sleep 100 ms in Windows
      printf(".[%d] ", i);
    }

В результате число в скобках появляется через каждые 100 мс в Windows.

В Linux:

    for (int i = 0; i < 100; i++)
    {
      usleep(100000);    // Sleep 100 ms in Linux 
      printf(".[%d] ", i);
    }

В результате получаетсяGROUP в скобках число выходит каждые 100 мс в Linux.Он запускает цикл, просто не распечатывая цифры, пока не закончится сон.????

1 Ответ

1 голос
/ 02 июля 2019

Выход буферизуется.Точки не видны, но они выдаются, как по маслу.

Если вы добавите

fflush(stdout); 

или новую строку в выходную строку, вы должны видеть, что точки появляются регулярно.

...