C Linux File API小结
Posted on 2014-12-01
看完《Linux程序设计》关于文件操作api部分的小结。
#底层文件访问
把缓冲区buf的前nbytes个字节写入与文件描述符fildes关联的文件中
从与文件描述符fildes相关联的文件里读入nbytes个字节的数据,并把它们放到数据区buf中
访问文件
终止文件描述符fildes与其对应文件之间的关联
系统调用
设置读写指针
fstat系统系统调用返回与打开的文件描述符相关的文件的状态信息,该信息将会写到一个buf结构中,buf的地址以参数形式传递给fstat
stat和lstat返回通过文件名查找到的状态信息,但当文件是符号链接时,lstat返回的是符号链接本身的信息,而stat返回的是该链接指向的文件的信息
复制文件描述符
标准I/O库
在标准I/O库中,与底层文件描述对应的是流(stream),它被实现为指向结构FILE的指针。
在stdio.h里定义的stdin、stdout和stderr分别代表着标准输入、标准输出和标准错误输出,与底层文件描述符0、1和2系相对应。
打开文件流
从文件流读取数据
从指定的数据缓冲区读书记录,并把它们写到输出流
关闭指定的文件流
把文件流里的所有未写数据立刻写出,fclose函数隐含执行了一次flush操作
为下一次读写操作置顶指定位置
从文件流中读取下一个字节并把它作为一个字符返回
向文件流写入一个字符
从输入文件流读取一个字符串
格式化输入和输出
格式化输出
格式化输入
此外部变量指出stdio函数的错误,应该总是在使用它之前将它复制到另一个变量中,因为像fprintf这样的输出函数本身就可能改变errno的值
测试一个文件流的错误标识,如果该标识设置就返回一个非零值,否则返回0
测试一个文件流的文件尾标识,如果该标识被设置就返回非零值,否则返回零
清除由stream指向的文件流的文件尾标识和错误标识
文件和目录
改变文件或目录的访问权限
改变文件属主
建立目录
删除目录
切换目录
获取当前目录
打开一个目录并建立一个目录流
readdir函数返回一个指针,该指针指向的结构里保存着目录流dirp中下一个目录项的有关资料
telldir函数的返回值记录着一个目录流里的当前位置
设置目录流dirp的目录项指针
关闭一个目录流
错误处理
把错误代码隐射为一个字符串
把errno变量中报告的当前错误隐射到一个字符串,该字符串先加上字符串s,再加上一个冒号和一个空格,e.g: