linux文件描述符-open、write、read、close、lseek

linux文件描述符-open、write、read、close

open操作符:

打开文件 open, creat - open and possibly create a file ordevice(打开、创建-打开并可能创建文件或设备)

头文件

#include 
#include 
#include 

函数结构

 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 

函数结构

ssize_t write(int fd, const void *buf, size_t count);
  • fd:写入的对象,open打开的文件;

  • buf:写入数据的起始位置;

  • size_t count:写入数据的长度(字节);

  • 返回值:出错-1 写入数据的长度byte

read操作符:

头文件

#include 

函数结构

ssize_t read(int fd, void *buf, size_t count);
  • fd:读取的文件,由open的返回值指定;

  • buf:指定读取的数据存储的起始位置;

  • size:指定一次最多读取的字节个数(一般为缓冲区大小,size<=缓冲区大小);

  • 返回值:出错-1 返回读到的数据字节数

close操作符:

头文件

 #include 

函数结构

int close(int fd);
  • fd:指定的文件表示符

  • 返回值:-1 出错 0 正确

lseek操作符(移动读写偏移量):

头文件

#include 
#include 

函数结构

off_t lseek(int fd, int size, int flag);
  • fd:操作的文件

  • size:移动的大小

  • flag:移动标记(移动的起始位置)SEEK_SET(开始位置)、SEEK_CUR(当前位置)、SEEK_END(结束为止);

例题1:利用文件,创作一个新的文件,并且打印里面的内容;

代码示例
linux文件描述符-open、write、read、close、lseek_第1张图片
执行结果:
linux文件描述符-open、write、read、close、lseek_第2张图片

例题2:利用文件操作函数实现普通文件的拷贝

(将源文件的内容拷贝到新的文件)
代码示例
linux文件描述符-open、write、read、close、lseek_第3张图片
打印结果:
在这里插入图片描述
欢迎大家评论指导!

你可能感兴趣的:(linux学习笔记)