阅读redis源码过程中有比较多的C语言函数调用,起一个文档记录。

fflush

刷新流stream的输出缓冲区,成功返回0,否则返回eof

1
int fflush(FILE *stream)

fopen

1
FILE *fopen(char *filename, char *mode);

fclose

用于关闭一个已经打开的文件。关闭文件后,该文件的指针将不再指向该文件,文件的缓冲区中的数据将被写入到磁盘中,文件的描述符将被释放,以便其他程序可以使用该文件。

1
int fclose(FILE *stream);

fileno

获取标准IO流的文件描述符。

1
int fileno(FILE *stream);

删除文件。
PS: 执行unlink()函数并不一定会真正的删除文件,它先会检查文件系统中此文件的连接数是否为
1,如果不是1说明此文件还有其他链接对象,因此只对此文件的连接数进行减1操作。若连接数为1,并且在此时没有任何进程打开该文件,此内容才会真正地被删除掉。

1
int unlink(const char *pathname);

snprintf

用于格式化输出字符串,并将结果写入到指定的缓冲区,与 sprintf() 不同的是,snprintf() 会限制输出的字符数,避免缓冲区溢出。

1
int snprintf ( char * str, size_t size, const char * format, ... );

str: 目标字符串,用于存储格式化后的字符串的字符数组的指针。
size: 字符数组的大小。
format: 格式化字符串。

strstr

该函数用以再haystack中查找needle出现的位置,未找到则返回null

1
char *strstr(const char *haystack, const char *needle)

strcasecmp

判断字符串是否相等(忽略大小写)

1
2
#include <strings.h>
int strcasecmp(const char *string1, const char *string2);

zmalloc

zfree

引用

1. 菜鸟教程-c库
2. include<unistd.h>