警告:函数“ getresuid”(和“ seteuid”)的隐式声明
我想摆脱警告。当我用
gcc -Wall -ansi -o test test.c
我回来
test.c: In function ‘main’:test.c:12: warning: implicit declaration of function ‘getresuid’
test.c:14: warning: implicit declaration of function ‘seteuid’
当我不使用 开关进行编译时
gcc -Wall -o test test.c
我在终端上看到
test.c: In function ‘main’:test.c:12: warning: implicit declaration of function ‘getresuid’
我想使用 开关并摆脱警告。我如何实现我的目标?
/* this is the test.c */#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#define __USE_GNU 1
#define __USE_BSD 1
int main()
{
static uid_t euid, ruid, suid;
getresuid(&ruid, &euid, &suid);
seteuid(getuid());
return 0;
}
环境:
CentOS 6.3 32位
gcc版本4.4.7 20120313(Red Hat 4.4.7-3)(GCC)
回答:
getresuid()
并且seteuid()
是GNU扩展功能,添加
#define _GNU_SOURCE
,或添加-D_GNU_SOURCE
GCC选项。
您不应该__USE_GNU
直接定义宏,它应该仅在glibc内部使用。
以上是 警告:函数“ getresuid”(和“ seteuid”)的隐式声明 的全部内容, 来源链接: utcz.com/qa/417093.html