前言
本文介绍Linux系统下自带的文件IO的函数。
Linux文件IO相关函数
open函数
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
close函数
#include <unistd.h>
int close(int fd);
read函数
#include <unistd.h>
ssize_t read(int fd, void *buf, size_t count);
write函数
#include <unistd.h>
ssize_t write(int fd, const void *buf, size_t count);
lseek函数
#include <sys/types.h>
#include <unistd.h>
off_t lseek(int fd, off_t offset, int whence);
三个文件描述符
标准输入:0
标准输出:1
标准错误:2
目录操作函数
stat函数
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
int stat(const char *pathname, struct stat *statbuf);struct stat {dev_t st_dev; /* ID of device containing file */ino_t st_ino; /* Inode number */mode_t st_mode; /* File type and mode */nlink_t st_nlink; /* Number of hard links */uid_t st_uid; /* User ID of owner */gid_t st_gid; /* Group ID of owner */dev_t st_rdev; /* Device ID (if special file) */off_t st_size; /* Total size, in bytes */blksize_t st_blksize; /* Block size for filesystem I/O */blkcnt_t st_blocks; /* Number of 512B blocks allocated *//* Since Linux 2.6, the kernel supports nanosecondprecision for the following timestamp fields.For the details before Linux 2.6, see NOTES. */struct timespec st_atim; /* Time of last access */struct timespec st_mtim; /* Time of last modification */struct timespec st_ctim; /* Time of last status change */#define st_atime st_atim.tv_sec /* Backward compatibility */
#define st_mtime st_mtim.tv_sec
#define st_ctime st_ctim.tv_sec
};
opendir函数
#include <sys/types.h>
#include <dirent.h>
DIR *opendir(const char *name);
readdir函数
#include <dirent.h>
struct dirent *readdir(DIR *dirp);
closedir函数
#include <sys/types.h>
#include <dirent.h>
int closedir(DIR *dirp);