目录
简介:
紧接上续四部,这次准备记录一下常见的函数的功能(容易忘记,记录一手),好记性不如烂笔头
fgets
fgets用于从指定的流中读取一行文本或字符串,并将其存储到指定的字符串变量中,这个函数的原型如下:
char *fgets(char *str, int n, FILE *stream)
这里的参数解释如下:
-
str - 是指向字符数组的指针,读取的字符串将被存储在这里
-
n - 是要读取的最大字符数(包括最终的 null 字符),通常,使用作为 str 传递的数组的长度
-
stream - 这是指向FILE对象的指针,该对象标识从中读取字符的流。
fgets函数会在以下情况下停止读取:
- 读取了
(n-1)
个字符 - 读取了换行符
- 到达了文件的末尾
如果成功,函数会返回与参数 str 相同的指针,如果遇到文件结束且没有读取到任何字符,那么 str 的内容将保持不变,并返回一个空指针;如果发生错误,也会返回一个空指针
fclose
flcose主要用于是关闭一个打开的文件流,所有缓冲区均已刷新
int fclose(FILE *stream)
这里的参数解释如下:
-
stream - 这是指向指定要关闭的流的 FILE 对象的指针。
如果文件成功关闭,函数返回零;如果失败,则返回 EOF
fopen
fopen主要作用是打开一个文件以进行各种操作,包括读取、写入等,如果文件存在,那么fopen函数会打开该文件,否则会创建一个新文件
FILE *fopen(const char *filename, const char *mode)
这里的参数解释如下:
-
filename是一个C字符串,包含需要打开的文件的名称
-
mode是一个C字符串,包含文件访问模式
以下是有效的mode_of_operation值及其含义:
"r":搜索文件,仅打开文件以进行读取。如果文件无法打开,fopen返回NULL
"w":搜索文件,如果文件已经存在,其内容将被覆盖,如果文件不存在,则创建一个新文件。仅创建用于写入的新文件(不可读)
"a":搜索文件,如果文件成功打开,fopen将其加载到内存中,并设置一个指向其中最后一个字符的指针,如果文件不存在,则创建一个新文件,仅用于在文件末尾追加(写入)
"r+":搜索文件,打开文件以进行读取和写入,如果无法打开文件,则返回NULL
"w+":搜索文件,如果文件存在,其内容将被覆盖。如果文件不存在,则创建一个新文件,与“w”不同的是,我们也可以读取使用“w+”创建的文件
"a+":搜索文件,如果文件成功打开,fopen()将其加载到内存中,并设置一个指向其中最后一个字符的指针,如果文件不存在,则创建一个新文件,该文件用于读取和追加(在文件末尾写入)
fopen
函数的返回值是一个指向FILE对象的指针。如果文件成功打开或创建,那么这个指针可以用于后续的文件操作,如读取、写入等。如果由于某种原因(例如,文件不存在,或者没有足够的内存来创建FILE对象)无法打开或创建文件,那么fopen
函数将返回NULL
fwrite
fwrite主要作用是将数据从 ptr 指向的数组写入到给定的流中
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)
这里的参数解释如下:
-
ptr - 这是指向要写入的元素数组的指针
-
size − 这是要写入的每个元素的大小(以字节为单位)
-
nmemb − 这是元素的数量,每个元素的大小为 bytes
-
stream - 是指向FILE对象的指针,该对象标识了数据将被写入的流
此函数返回作为 size_t 对象成功返回的元素总数,这是一种整数数据类型。如果此数字与 nmemb 参数不同,则会显示错误。
write
write主要作用是将数据从缓冲区写入到给定的文件描述符中
ssize_t write(int fd, const void *buf, size_t count)
这里的参数解释如下:
- fd - 是文件描述符 (write所对应的是写,即就是1)
- buf - 是指向要写入元素的缓冲区的指针 (通常是字符串)
- count - 是要写入的字节数
如果成功,write函数将返回写入的字节数;如果出错,将返回0
fread
fread主要作用是从给定的流中读取数据,并将其存储到由ptr指向的数组中
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)
这里的参数解释如下:
- ptr - 是指向一个内存块的指针,该内存块的最小大小为size*nmemb字节
- size - 是每个要读取的元素的字节大小
- nmemb - 是要读取的元素数量
- stream - 是指向FILE对象的指针,该对象标识了输入流
函数返回成功读取的元素总数,这是一个size_t对象,它是一个整数数据类型,如果这个数字与nmemb参数不同,那么可能发生了错误,或者已经到达文件的末尾
read
read主要作用是从给定的文件描述符中读取数据,并将其存储到由buf指向的缓冲区中
ssize_t read(int fd, void *buf, size_t count)
这里的参数解释如下:
- fd - 是文件描述符,指定要读取的文件或套接字的标识符
- buf - 指向存储读取数据的缓冲区的指针,该指针的最小大小为count字节
- count - 是要读取的最大字节数
如果成功,read函数将返回读取的字节数。如果出错,将返回-1,并设置errno以指示错误
总结:
了解函数的作用,可以更好的让我们在代码审计的过程理清程序的之间的逻辑,加油加油!!!