gpt4 book ai didi

c - 为什么 oldolduname 和 uname 之间有区别?

转载 作者:行者123 更新时间:2023-12-03 20:26:25 26 4
gpt4 key购买 nike

为什么 oldolduname 和 uname 有区别?

我一直在阅读手册页,但我没有理解其中的微妙之处。

最佳答案

首先,如果你从用户空间调用uname,你不需要关心区别,应该不需要使用olduname或oldolduname。从用户空间,您使用 struct utsname 并调用 uname() 函数。

来自手册页:

Over time, increases in the size of the utsname structure have led to three successive versions of uname(): sys_olduname() (slot __NR_oldolduname), sys_uname() (slot __NR_olduname), and sys_newuname() (slot __NR_uname). The first one used length 9 for all fields; the second used 65; the third also uses 65 but adds the domainname field. The glibc uname() wrapper function hides these details from applications, invoking the most recent version of the system call provided by the kernel.

因此,纵观历史,struct utsname 的大小和内容略有变化,内核保留了 3 个不同的版本以保持与用户空间的兼容性,您可以看到内核处理的不同版本这里:http://lxr.free-electrons.com/source/include/linux/utsname.h?v=2.6.38#L24 .然而,glibc 或 Linux 上的任何 C 库对您隐藏了所有这些。

关于c - 为什么 oldolduname 和 uname 之间有区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32519034/

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