remove() 函数在 C 语言中是如何工作的?

how does remove() function work in the C language?

提问人:programme3219873 提问时间:9/25/2021 更新时间:9/25/2021 访问量:202

问:

我最近在 C 中遇到了删除文件的情况,但我对它的工作原理很感兴趣。经过一番挖掘,我找到了它的函数定义:remove()

#include <errno.h>
#include <stdio.h>

int
remove (const char *file)
{
  __set_errno (ENOSYS);
  return -1;
}
libc_hidden_def (remove)

stub_warning (remove)

但是,我无法理解此代码的作用。我知道该函数接受 a 并返回 a 并返回,但是其余部分对我来说看起来很新。这个功能是如何工作的?和 是什么意思?char *int-1__set_errno (ENOSYS);libc_hidden_def (remove) stub_warning (remove)

C 文件-IO STDIO

评论

2赞 zwol 9/25/2021
此定义是一个始终失败的存根。它实际上并没有用于任何完全支持的 GNU libc 配置。在 sysdeps/ 目录中查找其他定义。
1赞 Luca Polito 9/25/2021
看看这个 SO 问题
1赞 Oka 9/25/2021
看看 ENOSYS。
1赞 zwol 9/25/2021
请注意,必须通过调用操作系统来完成大部分工作;您可能会发现此代码的信息量更大。remove
2赞 zwol 9/25/2021
@programme3219873我相信它的定义实际上在 Linux 上使用,是的,但请注意它只是调用 or ,这两者都是系统调用。sysdeps/posix/remove.cremoveunlinkrmdir

答: 暂无答案