首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

为什么小弟我有些函数和宏定义没法使用

2014-03-14 
为什么我有些函数和宏定义没法使用?环境如下:Linux forhu-debian 3.2.0-4-686-pae #1 SMP Debian 3.2.51-1

为什么我有些函数和宏定义没法使用?
环境如下:

Linux forhu-debian 3.2.0-4-686-pae #1 SMP Debian 3.2.51-1 i686 GNU/Linux
gcc version 4.7.2 (Debian 4.7.2-5) 


我发现有些函数没法使用,比如说我要使用nanosleep,已经include了time.h了,但是编译器报错如下:
test.c:17:18: error: storage size of ‘req’ isn’t known
test.c:17:22: error: storage size of ‘rem’ isn’t known
test.c:38:3: warning: implicit declaration of function ‘nanosleep’ [-Wimplicit-function-declaration]
make: *** [main.o] Error 1


但是我的代码如下:
  6 #include <time.h>
...
 17         struct timespec req,rem;
 18         req.tv_sec=0;
 19         req.tv_nsec=10000000;
...
 38                 nanosleep(&req,&rem);


等等诸如此类的问题,我看头文件,它需要一个宏定义:
__USE_POSIX199309
还有其他的情况我也碰到:
__USE_BSD
__USE_MISC

请问各位,我碰到这种情况该怎么解决?
[解决办法]
难道楼主用了gcc -std=c89或者 gcc -std=c99或者gcc -ansi
试试改为
gcc -std=gnu99
[解决办法]
引用time.h时这样引用就ok了


#define __need_timespec
#include <time.h>

热点排行