gpt4 book ai didi

c - 警告 : implicit declaration of function ‘getresuid’ (and ‘seteuid’ )

转载 作者:太空狗 更新时间:2023-10-29 11:24:45 33 4
gpt4 key购买 nike

我想摆脱警告。当我用

编译源代码时
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’

当我在没有-ansi switch 的情况下编译它时

gcc -Wall -o test test.c 

我在终端上看到

test.c: In function ‘main’:
test.c:12: warning: implicit declaration of function ‘getresuid’

我想使用 -ansi 开关并摆脱警告。我怎样才能实现我的目标?

/*  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-bit
gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC)

最佳答案

getresuid()seteuid()是GNU扩展函数,添加

#define _GNU_SOURCE

之前包括所有 header ,或在 GCC 选项中添加 -D_GNU_SOURCE

你不应该直接定义 __USE_GNU 宏,它应该只在 glibc 内部使用。

关于c - 警告 : implicit declaration of function ‘getresuid’ (and ‘seteuid’ ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19721810/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com