read(),write() 读/写文件
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() 读/写文件的更多相关文章
- java读/写文件
读取文件参考:https://blog.csdn.net/weixin_42129373/article/details/82154471 写入文件参考:https://blog.csdn.net/B ...
- C++ 二进制文件 读 写文件
1 #include <iostream> 2 #include <string> 3 #include<fstream> 4 using namespace st ...
- 关于使用 Java 分片读\写文件
分片读取文件方法: /** * 分片读取文件块 * * @param path 文件路径 * @param position 角标 * @param blockSize 文件块大小 * @return ...
- c# 读/写文件(各种格式)
最简单的: --------写 //content是要写入文本的字符串 //(@txtPath + @"\" + rid + ".txt");要被写入的TXT ...
- RandomAcessFile、MappedByteBuffer和缓冲读/写文件
项目需要进行大文件的读写,调查测试的结果使我决定使用MappedByteBuffer及相关类进行文件的操作,效果不是一般的高. 网上参考资源很多,如下两篇非常不错: 1.花1K内存实现高效I/O的Ra ...
- Pandas 基础(4) - 读/写 Excel 和 CSV 文件
这一节将分别介绍读/写 Excel 和 CSV 文件的各种方式: - 读入 CSV 文件 首先是准备一个 csv 文件, 这里我用的是 stock_data.csv, 文件我已上传, 大家可以直接下载 ...
- 【练习】Java中的读文件,文件的创建,写文件
前言 大家好,给大家带来Java中的读文件,文件的创建,写文件的概述,希望你们喜欢 读文件 public static void read(String path,String filename){ ...
- py库: xlwt 、xlrd (写读EXCEL文件)
写EXCEL文件 # -*- coding: utf-8 -*- import xlwt book = xlwt.Workbook(encoding = "utf-8", styl ...
- Python: 读文件,写文件
读写文件是最常见的IO操作.Python内置了读写文件的函数. 读写文件前,我们先了解一下,在磁盘上读写文件的功能都是有操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求 ...
随机推荐
- JS的作用域和作用域链
每个函数都有自己的作用域,当执行流进入一个函数时,函数就会被推入栈中,而在函数执行之后,栈将其执行环境弹出,把控制权放回给之前的作用域,全局作用域是最外围的一个作用域,因此,所有全局变量和函数都是作为 ...
- Jquery JSOPN在WebApi中的问题
1. 客户端代码: $.ajax({ data: { name: 'zhangsan' }, url: apiUrl.getTwo('TestFourth'), dataType: 'jsonp', ...
- Asp.Net 下载文件的几种方式
asp.net下载文件几种方式 protected void Button1_Click(object sender, EventArgs e) { /* 微软为Response对象提供了一个新的方法 ...
- Sql省市三级联动一张表
CREATE TABLE [dbo].[region]( [region_id] [int] NULL, [region_name] [varchar](50) COLLATE Chinese_PRC ...
- java线层的使用
class Do3 { public static void main(String[] args) { XC d1=new XC("小王"); XC d2=new XC(&quo ...
- C#使用多态求方形面积周长和圆的面积周长
class class1 { public static void Main(string[] args) { //使用多态求矩形面积与周长和圆的面积与周长 Shape cl = ); double ...
- jquery mobile touch 实例
<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...
- php 之 数据访问 查询关键字 (0506)
根据数据库中的car表做一个汽车查询页面: 一.一个关键字查询: 主页面: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transiti ...
- c# 与 c++ 编译
C#的所有方法封装在类中,类的方法没有先后之分,无需声明.//而C++必须在函数调用前,由编译器检查参数类型是否合法,所以必须知道函数的原形(protype),所以必须提前声明函数的签名(signat ...
- 基本套接字总结(@function)
最近学习了下UNIX下的网络编程.为了以后查询方便,总结在这里. 首先套接字的地址定义: IPv4地址和IPv6地址定义见<netinet/in.h>头文件定义.为了能够顺利转换不同的套接 ...