linux文件描述符-open、write、read、close、lseek
程序员文章站
2024-03-23 08:27:34
...
linux文件描述符-open、write、read、close
open操作符:
打开文件 open, creat - open and possibly create a file ordevice(打开、创建-打开并可能创建文件或设备)
头文件:
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
函数结构:
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
int creat(const char *pathname, mode_t mode);
-
Pathname:文件名 ;
-
flags:打开的方式(O_RDONLY只读-O_WRONLY只写-O_RDWR读写-O_APPEND 追加);
-
mode:创建文件时,指定文件的权限(0XXX);
-
返回值:-1 出错
write操作符
头文件:
#include <unistd.h>
函数结构:
ssize_t write(int fd, const void *buf, size_t count);
-
fd:写入的对象,open打开的文件;
-
buf:写入数据的起始位置;
-
size_t count:写入数据的长度(字节);
-
返回值:出错-1 写入数据的长度byte
read操作符:
头文件:
#include <unistd.h>
函数结构:
ssize_t read(int fd, void *buf, size_t count);
-
fd:读取的文件,由open的返回值指定;
-
buf:指定读取的数据存储的起始位置;
-
size:指定一次最多读取的字节个数(一般为缓冲区大小,size<=缓冲区大小);
-
返回值:出错-1 返回读到的数据字节数
close操作符:
头文件:
#include <unistd.h>
函数结构:
int close(int fd);
-
fd:指定的文件表示符
-
返回值:-1 出错 0 正确
lseek操作符(移动读写偏移量):
头文件:
#include <sys/types.h>
#include <unistd.h>
函数结构:
off_t lseek(int fd, int size, int flag);
-
fd:操作的文件
-
size:移动的大小
-
flag:移动标记(移动的起始位置)SEEK_SET(开始位置)、SEEK_CUR(当前位置)、SEEK_END(结束为止);
例题1:利用文件,创作一个新的文件,并且打印里面的内容;
代码示例:
执行结果:
例题2:利用文件操作函数实现普通文件的拷贝
(将源文件的内容拷贝到新的文件)
代码示例:
打印结果:
欢迎大家评论指导!
上一篇: 设计模式---中介者模式
下一篇: 如何使用IDEA看源码继承关系
推荐阅读
-
linux文件描述符-open、write、read、close、lseek
-
open、creat、write、close、lseek等文件操作函数详解
-
(P4-P5)文件与IO:open、close、creat、read、write
-
Linux的系统调用open,write,read,close,及相关总结
-
文件相关系统调用接口open/write/read/close
-
open/read/write/close等文件系统调用接口说明
-
linux系统调用open、write、close、read以及stat函数详解
-
open/read/write/close等文件相关系统调用接口
-
open/read/write/close等文件系统调用接口以及fd与FILE的比较
-
linux c学习笔记----文件的创建与读写(open,read,write)