目录
[一、标准 I/O 函数](#一、标准 I/O 函数)
[二、文件 I/O 函数](#二、文件 I/O 函数)
一、标准 I/O 函数
- 文件打开与关闭:
FILE *fopen(const char *path, const char *mode)
:打开文件并建立流。int fclose(FILE *fp)
:关闭文件流。
- 字符读写:
int fputc(int c, FILE *stream)
:向流中写入一个字符。int fgetc(FILE *stream)
:从流中读取一个字符。
- 按行读写:
char *fgets(char *s, int size, FILE *stream)
:从流中读取一行文本数据。int fputs(const char *s, FILE *stream)
:向流中写入一行数据。
- 二进制文件读写:
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)
:从流中读取二进制数据块。size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)
:向流中写入二进制数据块。
- 文件定位:
int fseek(FILE *stream, long offset, int whence)
:移动文件流中的指针。long ftell(FILE *stream)
:获取文件流指针的位置。void rewind(FILE *stream)
:将文件流指针重置到文件开头。
- 错误检测与清除:
int feof(FILE *stream)
:判断文件流是否到达结尾。int ferror(FILE *stream)
:检测流是否出错。void clearerr(FILE *stream)
:清除流的错误标记。
二、文件 I/O 函数
- 文件打开:
int open(const char *pathname, int flags, int mode)
:获得文件描述符以打开文件。
- 文件读写:
ssize_t write(int fd, const void *buf, size_t count)
:通过文件描述符写入数据。ssize_t read(int fd, void *buf, size_t count)
:通过文件描述符读取数据。
- 文件定位:
off_t lseek(int fd, off_t offset, int whence)
:定位文件描述符所指文件的光标位置。
- 文件流指针与文件描述符转换:
int fileno(FILE *stream)
:从文件流指针获取文件描述符。FILE *fdopen(int fd, const char *mode)
:将文件描述符转化为文件流指针。
三、目录操作函数
DIR *opendir(const char *name)
:打开目录获取目录流指针。struct dirent *readdir(DIR *dirp)
:从目录流中读取文件信息。int closedir(DIR *dirp)
:关闭目录流对象。int chdir(const char *path)
:改变当前程序的工作路径。char *getcwd(char *buf, size_t size)
:获取当前工作路径。int mkdir(const char *pathname, mode_t mode)
:创建目录。int rmdir(const char *pathname)
:删除空目录文件。
四、文件属性获取函数
int stat(const char *path, struct stat *buf)
:获取文件属性。
五、时间相关函数
time_t time(time_t *t)
:获取自 1970 年以来的秒数。struct tm *localtime(const time_t *timep)
:将秒数转化为日历时间。char *ctime(const time_t *timep)
:将秒数转化为字符串时间。
六、用户和组信息相关函数
struct passwd *getpwuid(uid_t uid)
:根据用户 ID 获取用户信息。struct passwd *getpwnam(const char *name)
:根据用户名获取用户信息。struct group *getgrgid(gid_t gid)
:根据组 ID 获取组信息。struct group *getgrnam(const char *name)
:根据组名获取组信息。
七、链接文件相关函数
int symlink(const char *oldpath, const char *newpath)
:创建符号链接文件。int remove(const char *pathname)
:删除文件。int rename(const char *oldpath, const char *newpath)
:重命名文件或路径。int link(const char *oldpath, const char *newpath)
:创建硬链接文件。int truncate(const char *pathname, off_t length)
:截断文件。
八、错误处理相关函数
void perror(const char *s)
:打印错误信息。char *strerror(int errnum)
:根据错误码获取错误信息。void error(int status, int errnum, const char *format,...)
:程序出错时打印原因并退出。