先看一下man手册对系统调用接口的说明
> int open(const char *pathname, int flags, mode_t mode);
pathname: 要打开的文件名
flags:选项标志
O_RDONLY 只读
O_WRONLY 只写
O_RDWR 读写
O_CREAT 文件不存在则创建,存在则打开
O_EXCL 与O_CREAT同用,若文件存在则报错
O_TRUNC 打开文件的同时,清空文件原有内容
O_APPEND 追加
mode:文件权限,用于创建文件的时候
返回值:正确:非负值(文件描述符) 错误:-1
具体使用那个open函数就有看是不是需要创建默认权限从而决定要不要mode
我们先代码演示一下:
首先我们在写入端输入“hello world",写入文件被输入到newfile文件。当我们设置lseek,表示读取位置。
- off_t lseek(int fd, off_t offset, int whence);
fd: 文件描述符
offset:偏移值
whence:偏移起始位置 -
SEEK_SET 文件起始位置 SEEK_CUR 当前读写位置 SEEK_END 文件末尾位置
编辑makefile文件
运行程序,发现文案已经从其实位置SEEK_SET位置,被接口open的系统读取函数从其实位置读取了。