How to pause a program for 1.5 seconds (1 second + 500000000 nanoseconds) in C

1 Answer

0 votes
#include <stdio.h>
#include <time.h>

enum {SECS_TO_SLEEP = 1, NSEC_TO_SLEEP = 500000000L};

int main() {
    struct timespec remaining, request = {SECS_TO_SLEEP, NSEC_TO_SLEEP};

    for (int i = 0; i < 10; i++) {
        printf("i - %d\n", i);
        if (i == 5) {
            printf("wait sleeping...\n");
            nanosleep(&request, &remaining);
        }
    }

    return 0;
}




/*
run:

i - 0
i - 1
i - 2
i - 3
i - 4
i - 5
wait sleeping...
i - 6
i - 7
i - 8
i - 9

*/

 



answered May 6, 2021 by avibootz

Related questions

2 answers 125 views
125 views asked Apr 29, 2025 by avibootz
1 answer 220 views
1 answer 127 views
127 views asked Apr 29, 2025 by avibootz
1 answer 154 views
2 answers 176 views
1 answer 147 views
...