IO_FILE fopen
前言
跟着raycp师傅学习IO_FILE,原文链接
源码
#include<stdio.h>
int main(){
FILE*fp=fopen("test","wb");
char *ptr=malloc(0x20);
return 0;
}
跟进fopen,发现是IO_new_fopen函数,它调用的是__fopen_internal
_IO_FILE *
_IO_new_fopen (const char *filename, const char *mode)
{
return __fopen_internal (filename, mode, 1);
}
跟进去__fopen_internal中,关键源码如下:
_IO_FILE *
__fopen_internal (const char *filename, const char *mode, int is32)
{
struct locked_FILE
{
struct _IO_FILE_plus fp;
#ifdef _IO_MTSAFE_IO
_IO_lock_t lock;
#endif
struct _IO_wide_data wd;
} *new_f =