gpt4 book ai didi

c - C11中的 sleep 功能

转载 作者:太空狗 更新时间:2023-10-29 17:09:20 26 4
gpt4 key购买 nike

我想在 C11 程序中休眠。 usleep(在 unistd.h 中)和 nanosleep(在 time.h 中)均未使用 gcc (4.8.2) 和 clang (3.2) 的 -std=c11 选项声明。

grep sleep/usr/include/*.h 不会显示任何其他可能的 sleep 候选对象。

我需要一个至少毫秒级精度的 sleep 。

我如何在 C11 sleep ?

最佳答案

使用 -std=gnu11而不是 -std=c11 (这适用于 clang 和 gcc)。这将导致 <time.h>标题定义 nanosleep .

nanosleep 的另一种选择, 调用 pselect在具有超时的空文件描述符上,也仅适用于 -std=gnu11而不是 -std=c11

举个例子:

#include <stdio.h>
#include <sys/select.h>

int main() // Compile with -std=gnu11 (and not -std=c11)
{
struct timespec ts1 = {
.tv_sec = 0,
.tv_nsec = 500*1000*1000
};
printf("first\n");
nanosleep(&ts1, NULL);
printf("second\n");
pselect(0, NULL, NULL, NULL, &ts1, NULL);
printf("third\n");
}

关于c - C11中的 sleep 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22924468/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com