包含不导入的指令

时间:2015-02-02 08:16:10

标签: c gcc time directive

我在整个程序中多次遇到此问题我目前正在处理gcc无法识别我从库中导入的函数或文件类型,即使include指令是显然是与所有其他人一起在计划的顶部。为了解决这个问题,我一直在寻找类似的库并使用这些库中的函数,但是对于我现在正在尝试做的事情,我找到的所有库都没有工作。这是我的指令列表:

#include "oscar.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <libgen.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <time.h>
#include <utime.h>
#include <malloc.h>

我目前正在尝试更改文件中的访问和修改时间。我尝试过使用utime(),utimes(),futimens()和其他几种变体,所有这些都有同样的问题。 GCC没有认识到许多功能或文件类型。例如,我尝试使用futimens():

futimens(m_file_desc, times);

但是gcc会出现以下错误

warning: implicit declaration of function ‘futimens’

1 个答案:

答案 0 :(得分:0)

您可能需要指定feature test macros

从手册页:

futimens():
Since glibc 2.10:
_XOPEN_SOURCE >= 700 || _POSIX_C_SOURCE >= 200809L
Before glibc 2.10:
_GNU_SOURCE

因此,根据您的glibc版本,您需要使用适当的值定义_GNU_SOURCE_XOPEN_SOURCE_POSIX_C_SOURCE