首页 > 其他分享 >文件操作的函数

文件操作的函数

时间:2023-02-15 10:36:27浏览次数:35  
标签:文件 函数 字节数 int fd 操作 include 指针

1. open

头文件:

  #include <sys/types.h>
  #include <sys/stat.h>
  #include <fcntl.h>

原型:

  int open(const char* pathname, int flags);//这种原型是打开一个已经存在的文件
  int open(const char* pathname, int flags, mode_t mode);//这种原型既可以打开存在的文件也可以打开不存在的文件

参数:

  pathname:文件名

  flags:O_RDONLY(只读)、O_WRONLY(只写)、O_RDWR(可读可写)、O_APPEND(追加)、C_CREAT(创建)、O_EXCL、O_TRUNC(截断)、O_NONBLOCK(非阻塞)

  open("./log.txt",O_WRONLY | C_CREAT | O_TRUNC);//文件不存在就创建文件且把文件清空

返回值:

  成功返回fd

  失败返回-1

 

2. close

头文件:

  #include <unistd.h>

原型:

  int close(int fd)

参数:

  fd:文件描述符

返回值:

  成功返回0

  失败返回-1

 

3. read

头文件:

  #include <unistd.h>

原型:

  ssize_t read(int fd, void* buf, size_t count);

参数:

  fd:文件描述符

  buf:存放从文件读取内容的缓冲区

  count:想读的字节数

返回值:

  0:文件已经读完

  >0:从文件读取到的字节数(实际读到的字节数)

  -1 :失败

 

2. write

头文件:

  #include <unistd.h>

原型:

  ssize_t write(int fd, const void *buf, size_t count)

参数:

  fd:文件描述符

  buf:要写入文件的缓冲区

  count:想写入文件的字节数

返回值:

  >0:实际写入的字节数(想写入的字节数必须和实际写入的字节数相等才能算写入成功)

  -1:失败

 

2. lseek(改变文件指针位置)

头文件:

  #include <sys/types.h>
  #include <unistd.h>

原型:

  off_t lseek(int fd, off_t offset, int whence)  off_t是Long型

参数:

  fd:文件描述符

  offset:相对于当前文件指针的偏移量

  whence:文件指针当前的位置

    SEEK_SET 文件指针指向文件开头位置     如:lseek(fd, 0, SEEK_SET)//文件指针指向文件开头且偏移量为0,即就是文件开头,下次对文件的操作就从开头开始操作
    SEEK_CUR 文件指针指向当前的位置        如:lseek(fd, -1, SEEK_CUR)//当前的文件指针向前移动1,下次如果往文件里写,将覆盖掉一字节
    SEEK_END 文件指针指向文件结尾的位置  如:lseek(fd, 0, SEEK_END)//文件指针指向文件结尾且偏移量为0,即就是文件尾部,也就是文件大小

返回值:

  当前文件指针相对文件开头的偏移量

  -1:失败

标签:文件,函数,字节数,int,fd,操作,include,指针
From: https://www.cnblogs.com/zj-studyrecoding/p/17121774.html

相关文章

  • DOM通用属性操作class属性操作
    1通用属性操作1attr():获取/设置元素的属性2removeAttr():删除属性3prop():获取/设置元素的属性4removeProp:删除属性attr和prop区别1......
  • K8s:通过 Helmify 实现将 YAML 文件 转化为 Helm Charts
    写在前面分享一个Yaml资源文件转HelmCharts包的小工具helmify博文内容涉及:helmify工具安装,简单使用YAML静态文件转化为HELMcharts包从kustomize输出转......
  • DM数据库表空间数据文件被误删除
    环境介绍操作系统:CentOS7.6数据库:DM8测试步骤数据文件被删除后,千万不要进行重启,否则会导致数据库无法启动(处于mount状态)。误删除表空间的数据文件后,此时还可以查看表......
  • 顺序表:查找元素x在顺序表中的下标,即定位函数
    一、定义顺序表结构#defineINIT_SIZE10 ///<顺序表初始容量typedefintseqType; ///<定义顺序表元素类型///@brief顺序表结构定义typedefstructt_sqList{ s......
  • 顺序表:查找元素x是否存在于顺序表中,即查找函数
    一、定义顺序表结构#defineINIT_SIZE10 ///<顺序表初始容量typedefintseqType; ///<定义顺序表元素类型///@brief顺序表结构定义typedefstructt_sqList{ s......
  • NumPy数组如何保存到文件中以进行机器学习?
    对于资深编程人员来说,在机器学习模型中常婵需要使用到NumPy数组,NumPy数组主要是处理Python中数据有效的数据结构,机器学习模型(scikit-learn)和深度学习模型(Keras)都希望使用Nu......
  • delphi 弹出选择目录对话框(选择文件夹)
    弹出选择目录对话框(选择文件夹)代码弹出Windows目录浏览器对话框usesVcl.FileCtrl;procedureTForm1.Button1Click(Sender:TObject);varvPath:string;begin......
  • Python文件的操作处理,一看就会
    ​每天进步一点点,关注我们哦,每天分享测试技术文章本文章出自【码同学软件测试】码同学公众号:自动化软件测试,领取资料可加:magetest码同学抖音号:小码哥聊软件测试​在读......
  • C#简单读取xml文件
    命令行程序用XmlDocument读取xml文件staticvoidMain(string[]args){stringxmlPath=Path.GetDirectoryName(System.Diagnostics.Proc......
  • 操作系统的四大特征
    1.并发并发:操作系统同时执行多个进程(依赖CPU个数);串行:同一时间只会执行一个程序;2.共享资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用;2种共享方......