gpt4 book ai didi

c - 为什么在有 readdir 内核函数的情况下在 POSIX 库接口(interface)中添加了 readdir 函数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:54:41 27 4
gpt4 key购买 nike

我惊讶地发现手册页中包含 readdir 的两个冲突变体的条目。

在 READDIR(2) 中,它特别指出你不想使用它:

This is not the function you are interested in. Look at readdir(3) for the POSIX conforming C library interface. This page documents the bare kernel system call interface, which is superseded by getdents(2).

我知道当另一个函数出现并更好地完成其工作时,一个函数可能会被弃用,但我不熟悉用户空间函数出现并替换同名内核函数的其他情况。选择走这条路而不是想出一个新的函数名称是否有一个已知的原因(正如手册页提到的 getdents 在取代 readdir 时所做的那样)。

最佳答案

编程接口(interface) POSIX 是稳定的。您不会因为想要更有效地实现后端而不必要地替换其中的功能。 Linux 系统调用 readdir 从未实现 readdir 函数 因为它有错误的签名;它是用于实现 readdir 函数的旧的、低效的后端。当出现更好的后端时,它已经过时了。

关于c - 为什么在有 readdir 内核函数的情况下在 POSIX 库接口(interface)中添加了 readdir 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56710768/

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