Я новичок в программировании. Я пытался выяснить временную задержку, чтобы замедлить выполнение моей программы. Я занимаюсь исследованиями и не могу найти тот, который работает, который я читал о nanosleep
и sleep
. Я пробовал оба, но когда я помещал их в цикл for
, он ждет несколько секунд, а затем выполняет весь цикл for
без паузы между итерациями. Может быть, у меня ошибка в коде? Я включил его ниже.Создание задержки в C
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
FILE *fp;
int i;
/* open the file */
fp = fopen("/dev/pi-blaster", "w");
if (fp == NULL) {
printf("I couldn't open pi-blaster for writing.\n");
exit(0);
}
/* write to the file */
for(i=99;i>=0;i--){
sleep(1);
fprintf(fp, "0=0.%d\n",i);
}
/* close the file */
fclose(fp);
return 0;
}
OS кеширование, скорее всего. Что заставляет вас уверены, что несколько байтов будут видны сразу? –
Попробуйте fflush() после печати. –
Вы используете _this_ pi_blaster? https://github.com/sarfata/pi-blaster/ –