文件操作函数:
int open(char *path,int flag,/*mode_t mode*/):打开一个普通文件。成功则返回文件描述符
int read(int fd,void *buff,size_t size):按字节读取文件内容 size读取字节大小,缓冲区大小
int write(int fd,void *buff,size_t size):按字节给文件中写入数据 buff文件的起始位置 size:数据的长度
int close(int fd):关闭打开的文件
int lseek(int fd,int size,int flag):移动文件读写偏移量 size: 字节数,
flag:移动的起始位置,SEEK_SET SEEK_CUR SEEK_END
库函数:
FILE fopen:(char *file,char *flag):文件和终端的输入和输出
szie_t fread:(void *ptr,size_t size,size_t nitems,FILE *stream):从那一个文件流读取数据
size_t fwrite:(const void *ptr,size_t size,size_t nitems,FILE *stream):从指定缓冲区取数据,写入输出流
int fclose(FILE *stream):关闭指定文件流stream
int fseek(FILE *stream,long int offset,int whence);在文件流里为下一次读写操作指定位置flag: O_RDONLY O_WRONLY O_RDWR 0_CREAT 0_APPEND O_TRUNC
三个stat函数获取文件属性信息
int stat(char *path,struct stat *st); 返回与次命名文件有关的信息结构
int fstat(int fd,struct stat *st); 获取以在fd上打开的文件信息
int lstat(char *path,struct stat *st); 当命名为文件是一个符号链接时,返回该符号链接的有关信息,而不是链接的文件的信息扫描目录:
opendir:DIR *opendir(const char *name):打开一个目录,返回目录流
readdir:struct dirent *readdir(DIR *drip):返回目录中的一个数据项,并指向下一个数据项
telldir:long int telldir(DIR *dirp):返回目录流中的当前位置,在seekdir中使用
closedir:int closedir(DIR *dirp):关闭一个目录流,并释放与之相关联的资源,成功返回0,失败返回-1
seekdir:(DIR *dirp,long int loc):设置目录流dirp的目录项指针 loc:设置指针位置,telldir获取
库函数和系统调用函数的区别:
系统调用函数:是系统内核抛出来给用户的空间调用的接口,系统调用函数由用户态函数调用,在内核执行。
库函数:在函数库文件中实现,执行时只需要在用户态执行就可以了。
库函数:在函数库文件 库函数有可能需要转调系统调用函数,
系统调用函数:在系统内核中实现