gpt4 book ai didi

c - Linux 中标准库的头文件是如何安装的?

转载 作者:IT王子 更新时间:2023-10-29 00:46:27 30 4
gpt4 key购买 nike

我有一个关于库 siginfo.h 的恼人问题。我需要这个库的一个版本,它包含 siginfo_t 的结构和一个用于处理 SIGSYS 信号的字段。

例如,我需要的结构版本可以在这里找到: http://code.woboq.org/userspace/glibc/sysdeps/unix/sysv/linux/x86/bits/siginfo.h.html

使用#include 自动包含的版本是/usr/include/bits/siginfo.h 缺少此字段。但是,在 asm-generic 中有同一个库的另一个版本,它提供了我需要的字段。内核包含两个名为 siginfo.h 的文件,但它们不包含结构 siginfo_t。我认为这个问题可以通过更新 glibc 来解决,但是在最新版本的 glibc (2.17) 中又出现了一个完全不同的版本,而不是我需要的。

现在我有点困惑,标准库的头文件是如何安装的?我是否应该激活编译选项以获得这种结构?

最佳答案

siginfo_t 的成员 union {} _sifields 中可用的内容取决于您使用的内核。

内核 3.6.4 明确定义:

 /* SIGSYS */
struct {
void __user *_call_addr; /* calling user insn */
int _syscall; /* triggering system call number */
unsigned int _arch; /* AUDIT_ARCH_* of syscall */
} _sigsys;

内核 2.6.32 没有。

不知 Prop 体是什么时候引入的。

关于c - Linux 中标准库的头文件是如何安装的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17133116/

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