“process_vm_readv 的隐式声明”,但我包括 <sys/uio.h>

tcp*_*pie 4 c gcc ubuntu-13.10

我正在尝试使用 GCC 编译一些代码。在我的代码中,我调用 process_vm_readv() 和 process_vm_writev() (这些是非标准 Linux 扩展,请参阅此处的手册页: http: //linux.die.net/man/2/process_vm_writev)。

\n\n

按照这个人的说法,我将其包含在我的 .c 文件中,但是 GCC 吐出了:

\n\n
\n

警告:函数 \xe2\x80\x98process_vm_writev\xe2\x80\x99 的隐式声明

\n
\n\n

我不知道如何解决这个问题... printf 和 strlen 等标准 libc 函数可以正常编译。

\n

nos*_*nos 5

这些功能仅在启用 GNU 扩展时才可用。这就是 #define _GNU_SOURCE有效,(这一事实可能应该记录在他的手册页中)

所以你需要做

#define _GNU_SOURCE
#include <sys/uio.h>
Run Code Online (Sandbox Code Playgroud)