函数 'usleep' 的隐式声明

5

最近我在查找 usleep() 相关的资料,但是我找到的所有内容只是建议使用 #define 来解决这个问题... 你有什么其他建议吗?我需要摆脱这个警告... 或者你有没有关于如何以毫秒为单位使用 sleep 函数的想法。

#define _BSB_SOURCE
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <unistd.h>
#include <time.h>

int r = rand() % 1000 +1;
usleep(r*1000);        
pthread_mutex_lock (&count_mutex);

3
没有_BSB_SOURCE宏,应该是_BSD_SOURCE宏,而且已经被弃用。 - Iharob Al Asimi
2个回答

7

您需要从编译命令中删除 -std=c99 或在包含 unistd.h 之前使用 _XOPEN_SOURCE 宏。

如果您愿意,可以使用 -std=gnu99 替代 -std=c99


2

nanosleep() 对我很有效:

相关说明:usleep()自POSIX-2008起已被取消,建议改用nanosleep()。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接