FILE *fopen(const char *filename, const char *mode);
其中,filename
是要打开的文件名(包括路径),mode
是文件的打开模式。
fopen
函数返回一个指向FILE
类型的指针,指向打开的文件。如果文件打开失败,则返回NULL
指针。
fopen函数是C语言中用于打开文件的函数,其常用的文件打开模式通配符有以下几种:
- "r":以只读方式打开文件。文件必须存在,否则打开失败。
- "w":以写入方式打开文件。如果文件存在,则文件内容被清空;如果文件不存在,则创建新文件。
- "a":以追加方式打开文件。如果文件存在,则写入的数据追加到文件末尾;如果文件不存在,则创建新文件。
- "r+":以可读写方式打开文件。文件必须存在,否则打开失败。
- "w+":以读写方式打开文件。如果文件存在,则文件内容被清空;如果文件不存在,则创建新文件。
- "a+":以追加读写方式打开文件。如果文件存在,则写入的数据追加到文件末尾;如果文件不存在,则创建新文件。
- "b":以二进制模式打开文件。可以与上述模式组合使用,例如"rb"、"wb"、"ab"、"r+b"等。
这些通配符可以组合使用以满足不同的需求,例如:"rb"表示以只读的二进制模式打开文件,"w+"表示以读写方式打开文件并清空其内容,"a+b"表示以追加读写的二进制模式打开文件。
需要注意的是,文件打开成功后,需要使用fclose函数来关闭文件。
- "r+"模式下打开文件时,文件指针位于文件开头,可以读取、写入和修改文件的任意位置。写入操作会覆盖原有内容。
- "w+"模式下打开文件时,如果文件存在,文件内容会被清空;如果文件不存在,则创建新文件。文件指针位于文件开头,可以读取、写入和修改文件的任意位置。
读取或打开失败会返回NULL
malloc:
void* malloc(size_t size)
该函数分配一个指定大小的内存块,并返回一个指向该内存块的指针,size为分配的内存块大小(字节数),如果分配失败,就会返回NULL,返回的指针指向该内存块的起始位置
realloc
void* realloc(void* ptr,size_t size)
该函数用于将已分配的内存块进行再分配,其中ptr为指向原型内存块的指针,size为字节大小,若ptr为null,则代表重新调用malloc分配一块新内存,若size小于或等于原先的,则是代表截断内存块,若size为0并且ptr不是null,则代表释放该内存块,与free相同
这种内存分配函数多用于指针,动态分配内存块,每次调用后,即每次分配内存后都需要检查是分配成功,并且分配成功后必须free,free后也需要将指针指向null
即如下
int* newptr=(int*)malloc(sizeof(int)*n);
if(newptr==NULL)
{printf("memory allocation error\n");
free(newptr);
newptr=NULL;
}
free(newptr)
这样释放会避免在此调用该指针时,会报访问错误等问题