3
Я пытаюсь писать на терминал по одной строке за раз, но он просто печатает все, не спать. Он работает, если я использую сон (1). Неужели я просто не понимаю, как нанооспутник должен работать?Почему C nanosleep() не спит здесь?
void
display_all(int fdin, int fdout)
{
struct timespec tm1,tm2;
tm1.tv_sec = 0;
tm1.tv_nsec = 1000000000L;
while (display_line(fdin, fdout) == 80)
{
nanosleep(&tm1,&tm2);
}
}
display_line использует функцию write для записи в STDOUT.
Чтение [справочную страницу] (https://linux.die.net/ man/2/nanosleep) всегда помогает: «Значение поля наносекунд должно находиться в диапазоне от 0 до 999999999». – kaylum
не используют наносы для больших спальных мест: он точен, но ест много процессора, потому что он использует откалиброванные активные петли ЦП. Не подходит для длительной задержки. –
ничего себе. Это сделало это для меня спасибо. и да @ Jean-FrançoisFabre Я просто тестировал, как использовать его, потому что мне нужно сделать модификатор скорости, чтобы увеличить скорость его чтения или уменьшить его. – WizKiz