我正在检查linux应用程序的代码,我在其中一个代码文件中看到了#include。我尝试在opengroup.org上查找但我找不到它,这就是sys目录的样子:http://www.opengroup.org/onlinepubs/000095399/basedefs/sys/。我想这不是标准的头文件,但我在/ usr / include / sys中检查了它就在那里。
它做什么以及它用于什么?如果你能为我提供一些手册,我将不胜感激。谢谢。
答案 0 :(得分:2)
与ptrace(2)一起使用(参见PTRACE_PEEKUSER):http://linux.die.net/man/2/ptrace
答案 1 :(得分:2)
标题顶部的评论几乎说明了一切:
#ifndef _SYS_USER_H
#define _SYS_USER_H 1
/* The whole purpose of this file is for GDB and GDB only. Don't read
too much into it. Don't use it for anything other than GDB unless
you know what you are doing. */
GNU特定扩展通常非常容易识别(例如_GNU_SOURCE
)。但是,即使未打开这些扩展,调试和检测也必须正常工作。例如,人们希望在不#define _GNU_SOURCE
的代码上使用GDB。
在这种情况下,ISO C中未定义的东西(POSIX不要求)通常会清楚标明。
您还可以在包含Valgrind标题的程序中找到各种奇怪的符号。