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. ViewPager切换动画PageTransformer使用

    Android从3.0开始,就添加了很多动画,ViewPager当然也不例外,相对于非常平庸的默认切换动画,Google给我们展示了两个动画例子:DepthPageTransformer和ZoomOu ...

  2. 新唐Cortex-M0微控制器的省电管理

    新唐科技的NUC1xx包含NUC101.NUC100.NUC120.NUC130和NUC140,是以ARM Cortex-M0为核心的32位微控制器(MCU),经由不同时钟的设定,最高可以达到 50M ...

  3. ftp nfs samba比较

    首先从字面意思上区分一下:1. FTP(文件传输协议)2. NFS(网络文件系统)3. samba 即smb(服务信息块)协议其中FTP 是TCP/IP协议栈所提供的一种子协议,该子协议具体可以实现在 ...

  4. 小学生之KTV播放原理

    第一步: 创建一个Song类 //歌曲名称 public  string SongName { get; set; } //歌曲路劲 public string SongPath { get; set ...

  5. Python代码分析工具之dis模块

    转自:http://hi.baidu.com/tinyweb/item/923d012e8146d00872863ec0  ,格式调整过. 代码分析不是一个新的话题,代码分析重要性的判断比较主观,不同 ...

  6. RecycleView 瀑布流滑动移位

    RecycleView StaggeredLayoutManager(瀑布流)滑动的时候,默认会出现item移动的问题,需以下来个步骤来解决: 附上StaggeredLayoutManager中的一段 ...

  7. jQuery选择器全解

    本篇介绍jQuery的选择器,jQuery选择器按照功能上分为"选择"和"过滤",并且是配合使用的.过滤的主要作用是从前面选定的选择器中选择的内容重进行筛选. ...

  8. php 初学笔记

    1.变量定义和使用 php中定义变量名为:$aa 在类中一般定义一个新变量需要添加var字,如var $aaa. 但是过程或函数中是不需要添加var 关键字,如$aaa=$_POST['aaaa'], ...

  9. Python学习笔记整理(五)Python中的列表.

    列表和字段,这两种类型几乎是Python所有脚本的主要工作组件.他们都可以在原处进行修改,可以按需求增加或缩短,而且包含任何种类的对象或者被嵌套. 一.列表 列表的主要属性: *任意对象的有序集合 从 ...

  10. CentOS下Qt窗口透明效果失效,成黑色背景的问题

    一.问题 Linux系统下Qt窗口的透明效果成了黑色,但同样的代码在windows机子上有透明效果,主要是修改系统的配置,仅在centos6.3及其以上版本实验过.其他系统可以相应配置. 二.问题运行 ...