1、文件的打开 用到了open函数
open对应的代码
(如果有这个open要打开的文件的话,fd返回一个非负整数 ,没有的话返回 负1)
下面的是没有file1 的情况,咱们就创建一个file1
2、文件的写入
对应的代码
我们打开file1 文件 你看 夸我帅呢
3、文件的读取
看见那个SYNOPSIS(简介)?里面的意思:从FD指向的文件中读取size _t count 大小的字节,放在void *buf 里面
这是相应的代码
运行的结果
咋成这个样子了呢 ? 其实是光标的原因 。
看见里面的31 行还有 32 行了吗?这么一顿操作 就能正确的取读啦,先关闭光标 ,在打开光标 。虽然有点麻烦
4、文件光标的位置
上面需要关闭在打开太麻烦 ,可以用Lseek函数
这样就简单多了 ,下面是关于光标的解释
有个简单的方法计算文件的大小
我感觉上面的 char 那行有点多余 但是懒得去掉了
我感觉这算的是之前文件的大小
5、补充部分
那个O_EXCL 应该说如果文件已经存在 ,文件打开失败 ,返回-1
这是用来判断一个文件是否存在。
这是存在file1 的情况 ?如果不存在呢?
不存在的话 他会新建一个file1 但是不会告诉你, 你必须ls 用来查看
里面的O_APPEND 是不想覆盖原来的代码。
这是file1 的内容
这是一般的文件 就是从开头的位置开始覆盖,对应着上面的操作
如果我们不想覆盖原来的怎么办?
加上一个O_APPEND 就可以了
这是其结果。
如果我不想要了之前文件的内容呢?
这个可以把之前的文件全部干掉
现在file1 里面有这么多字节
里面的具体代码如下
把以前的全干掉
6、还有一个是创建
看见那个绿色的file2了吗?就是创建的
(本文章部分摘抄老陈的ppt ,懒的打太多的文字)