gpt4 book ai didi

linux - 调用系统调用的不同方式

转载 作者:太空宇宙 更新时间:2023-11-04 11:01:55 25 4
gpt4 key购买 nike

我观察到系统调用“stat”的行为与调用不同

stat()

syscall(__NR_stat)

我不明白为什么同一个系统调用的行为不同因为调用它的方式改变了?

最佳答案

如今 Linux 上的 C 库提供的 stat() 通常在内核的 sys_stat64() 之上实现。

这是 man page 的众多案例之一应该是您的第一个引用:

  Underlying kernel interface

Over time, increases in the size of the stat structure have led to
three successive versions of stat(): sys_stat() (slot __NR_oldstat),
sys_newstat() (slot __NR_stat), and sys_stat64() (new in kernel 2.4;
slot __NR_stat64). The glibc stat() wrapper function hides these
details from applications, invoking the most recent version of the
system call provided by the kernel, and repacking the returned
information if required for old binaries. Similar remarks apply for
fstat() and lstat().

您可能还想获取已安装的 C 库的源包,并通过它查看包装器的实际实现。

关于linux - 调用系统调用的不同方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26649452/

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