Le timespec vient de POSIX, donc, vous avez à "activer" POSIX définitions:
#if __STDC_VERSION__ >= 199901L
#define _XOPEN_SOURCE 600
#else
#define _XOPEN_SOURCE 500
#endif /* __STDC_VERSION__ */
#include <time.h>
void blah(struct timespec asdf)
{
}
int main()
{
struct timespec asdf;
return 0;
}
La strophe en haut est ce que j'utilise actuellement -, il déclenche les définitions de la Single UNIX Specification (SUS), selon que vous utilisez à l'aide d'un C99 ou C89 compilateur.
- Si vous voulez la POSIX 2008 SUS (v4) le matériel, l'utilisation _XOPEN_SOURCE 700
- Si vous voulez la POSIX 2004 SUS (v3) le matériel, l'utilisation _XOPEN_SOURCE 600
- Si vous voulez la POSIX 1995 SUS (v2, 1997), utiliser _XOPEN_SOURCE 500
Pour mes systèmes POSIX 2008 n'est pas aussi largement disponible que 2004, de sorte que c'est ce que j'utilise mais YMMV. Notez que SUS v3 et v4, les deux nécessitent C99 compilation. Sur Solaris, au moins, à l'aide de C89 échouera.