How to pause a program for 0.5 seconds (0 second + 500000000 nanoseconds) in C

2 Answers

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

int main() {
    struct timespec tim, tim2;
    tim.tv_sec = 0;
    tim.tv_nsec = 500000000L;

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

    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
0 votes
#include <stdio.h>
#include <time.h>

int main() {
    for (int i = 0; i < 10; i++) {
        printf("i - %d\n", i);
        if (i == 5) {
            printf("wait sleeping...\n");
            nanosleep((const struct timespec[]){{0, 500000000L}}, NULL);
        }
    }

    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 133 views
133 views asked Apr 29, 2025 by avibootz
1 answer 141 views
141 views asked Apr 29, 2025 by avibootz
1 answer 166 views
2 answers 191 views
1 answer 164 views
1 answer 183 views
...