read

read()是一个系统调用函数。用来从一个文件中,读取指定长度的数据到 buf 中。

使用read()时需要包含的头文件: <unistd.h>

函数原型:

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

  ssize_t是系统头文件中 typedef 定义的数据类型,相当于 signed int。

参数:

  fd:要从中读取内容的文件的文件描述符。

  count:期望读取的文件字节数。

返回值:

  成功 返回读到的字节数; 已读到文件结尾返回 0; 出错返回 -1。

Write

write()是一个系统调用函数,作用是将buf 中的内容写入到文件中。

使用write()函数时要包含头文件 <unistd.h>。

函数原型:

  ssize_t write(int fd, char *buf, size_t count)

参数:

  fd:要从中读取内容的文件的文件描述符。

  count:期望读取的文件字节数。

返回值:

  写入成功返回实际写入的字节数,出错返回-1。

  不得不提的是,返回-1的常见原因是:磁盘空间已满,超过了一个给定进程的文件长度。    

使用read(),write()完成文件拷贝:

  #include <unistd.h>
 int main(int argc, char *argv[])
{
   int fs = open(argv[], O_RDONLY);    //打开要复制的源文件
   if (fs == -)
    {
     perror("open source file");
     return -;
   }
   int fd = open(argv[], O_RDONLY | O_CREAT | O_EXCL, );    //创建要复制的目标文件,若文件已存在退出
   if (fd < )
    {
     perror("open dest file");
     return -;
   }    char buf[] = {};
   int count ;
   while ((count = read(fs, buf, sizeof(buf))) > )    //从源文件读取数据并写入目标文件
   {
     write (fd, buf, strlen(buf));
   }  
   close(fs);
   close(fd);
   return ;
 }

read(),write() 读/写文件的更多相关文章

  1. java读/写文件

    读取文件参考:https://blog.csdn.net/weixin_42129373/article/details/82154471 写入文件参考:https://blog.csdn.net/B ...

  2. C++ 二进制文件 读 写文件

    1 #include <iostream> 2 #include <string> 3 #include<fstream> 4 using namespace st ...

  3. 关于使用 Java 分片读\写文件

    分片读取文件方法: /** * 分片读取文件块 * * @param path 文件路径 * @param position 角标 * @param blockSize 文件块大小 * @return ...

  4. c# 读/写文件(各种格式)

    最简单的: --------写 //content是要写入文本的字符串 //(@txtPath + @"\" + rid + ".txt");要被写入的TXT ...

  5. RandomAcessFile、MappedByteBuffer和缓冲读/写文件

    项目需要进行大文件的读写,调查测试的结果使我决定使用MappedByteBuffer及相关类进行文件的操作,效果不是一般的高. 网上参考资源很多,如下两篇非常不错: 1.花1K内存实现高效I/O的Ra ...

  6. Pandas 基础(4) - 读/写 Excel 和 CSV 文件

    这一节将分别介绍读/写 Excel 和 CSV 文件的各种方式: - 读入 CSV 文件 首先是准备一个 csv 文件, 这里我用的是 stock_data.csv, 文件我已上传, 大家可以直接下载 ...

  7. 【练习】Java中的读文件,文件的创建,写文件

    前言 大家好,给大家带来Java中的读文件,文件的创建,写文件的概述,希望你们喜欢 读文件 public static void read(String path,String filename){ ...

  8. py库: xlwt 、xlrd (写读EXCEL文件)

    写EXCEL文件 # -*- coding: utf-8 -*- import xlwt book = xlwt.Workbook(encoding = "utf-8", styl ...

  9. Python: 读文件,写文件

    读写文件是最常见的IO操作.Python内置了读写文件的函数. 读写文件前,我们先了解一下,在磁盘上读写文件的功能都是有操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求 ...

随机推荐

  1. android常用软件下载资源链接

    最新内容请看:http://www.androiddevtools.cn/ https://github.com/inferjay/AndroidDevTools 官方adt下载地址:http://d ...

  2. 关于JS历史拓展

      js由来        95年那时,绝大多数因特网用户都使用速度仅为28.8kbit/s 的“猫”(调制解调器)上网,但网页的大小和复杂性却不断增加.为完成简单的表单验证而频繁地与服务器交换数据只 ...

  3. python 下的数据结构与算法---5:递归(Recursion)

    定义:递归就是不断分割整体成部分直到可以轻易解决分割出来的部分. 递归表达式三定律: 1:递归表达式必须有个最小单元     (最小单元既是停止递归调用以及能够直接运算的) 2:递归表达式在运算过程中 ...

  4. js获取页面名称

    function pageName() {    var strUrl = location.href;    var arrUrl = strUrl.split("/");    ...

  5. (转)SQL Server 2008将数据导出为脚本 [SQL Server]

    之前我们要将一个表中的数据导出为脚本,那么只有在网上找一个导出数据的Script,然后运行就可以导出数据脚本了.现在在SQL Server 2008的Management Studio中增加了一个新特 ...

  6. Java 测试Hibernate+Mysql简单的数据存储

    想使用Hibernate框架,在网上看了一个Hibernate学习视频,试着做了一个小小的Java连接数据库的操作,Java初学者一个,大家多多包涵 开发环境: 1.安装MySql, 2.安装了Ecl ...

  7. Swift中构造器的继承和重写

    import Foundation /* 构造器的继承: Swift的子类不会自动继承父类的构造器, 若继承, 则满足如下规则: 1.如果子类没有提供任何指定构造器, 那么它将自动继承父类的所有指定构 ...

  8. SwfUpload及imgareaselect使用方法

    1.导入文件 Swfupload相关文件 imgareaselect截取插件相关文件 2.前端html代码 添加一个截取图片的按钮,其他为swf所需的html. <body> <di ...

  9. linux下面安装配置LAMP环境

    以centos下面为例.初学者.东西基本都是各个地方找来的.自己手写了一遍.应该印象会很深刻 首先切换到超级管理员模式 1.安装php 一路选择y就行了 安装一些php的扩展 yum -y insta ...

  10. 使用Jquery解决Asp.Net中下拉列表值改变后访问服务器刷新界面。

    使用DropDownList控件时,改变选项时,获取服务端数据库数据并刷新界面数据. 1. 绑定DropDownList控件SelectedIndexChanged事件. 2. AutoPortBac ...