gpt4 book ai didi

c - 函数 _IO_file_init 和 _IO_file_fopen 的定义

转载 作者:行者123 更新时间:2023-11-30 17:34:20 28 4
gpt4 key购买 nike

我正在研究C库函数fopen()在Linux中的实现,所以我检查了glibc源代码。在源代码中我找到了fopen是如何实现的。但在fopen的实现中,有两个函数称为“_IO_file_init”和“_IO_file_fopen”。但这些函数的定义并不在glibc源代码中。

谁能告诉我在哪里可以找到函数“_IO_file_init”和“_IO_file_fopen”的定义。

最佳答案

实现位于文件 Fileops.c 中。请注意 _IO_new_file_fopen 是 _IO_file_fopen 的别名。

_IO_FILE *
_IO_new_file_fopen (fp, filename, mode, is32not64)
_IO_FILE *fp;
const char *filename;
const char *mode;
int is32not64;
{
int oflags = 0, omode;
int read_write;
int oprot = 0666;
int i;
_IO_FILE *result;
#ifdef _LIBC
const char *cs;
const char *last_recognized;
#endif

if (_IO_file_is_open (fp))
return 0;
switch (*mode)
{
case 'r':
omode = O_RDONLY;
...
}

顺便说一句,我正在查看 glic-2.19。

关于c - 函数 _IO_file_init 和 _IO_file_fopen 的定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23387296/

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