write函数的详解与read函数的详解[通俗易懂]

write函数的详解与read函数的详解[通俗易懂]write()头文件:#include<unistd.h>原型:ssize_twrite(intfd,constvoid*buf,size_tcount);参数说明:fd:是文件描述符(write所对应的是写,即就是1)buf:通常是一个字符串,需要写入的字符串count:是每次写入的字节数返回值:成功:返回写入的字节数…

大家好,又见面了,我是你们的朋友全栈君。

write()

头文件:#include<unistd.h>

原型:

ssize_t write(int fd,const void*buf,size_t count);
参数说明:
  fd:是文件描述符(write所对应的是写,即就是1)
  buf:通常是一个字符串,需要写入的字符串
  count:是每次写入的字节数

返回值:

 成功:返回写入的字节数
 失败:返回-1并设置errno
  ps: 写常规文件时,write的返回值通常等于请求写的字节
       数count, 而向终端设备或者网络写时则不一定

read()

头文件:#include<unistd.h>
功能:用于从文件描述符对应的文件读取数据(从打开的设备或文件中读取数据)

原型:

ssize_t read(int fd,void*buf,size_t count)
参数说明:
fd:      是文件描述符
buf:     为读出数据的缓冲区;
count:   为每次读取的字节数(是请求读取的字节数,读上来的数据保
         存在缓冲区buf中,同时文件的当前读写位置向后移)

返回值:

 成功:返回读出的字节数
 失败:返回-1,并设置errno,如果在调用read
       之前到达文件末尾,则这次read返回0

代码:

#include<stdio.h>
#include<string.h>
#include<unistd.h>
int main()
{
   const char*msg="hello\n";
   int len = strlen(msg);
   write(1,msg,len);//write所对应的文件描述符为1
   char buf[1024]={
  
  0};
   read(0,buf,len);//read所对应的文件描述符为0
   return 0;
}

运行结果:
这里写图片描述

fread函数read函数的区别

1.fread函数是封装好的库函数,而read函数是系统函数,一般来说,fread效率更高;
2.读取文件的差别:fread函数功能更强大,可以读取结构体的二进制文件,但是如果是最底层的操作,用到文件描述符的话,用read会更好。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/152090.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • java基础知识之FileInputStream流

    java基础知识之FileInputStream流一、File流概念      JAVA中针对文件的读写操作设置了一系列的流,其中主要有FileInputStream,FileOutputStream,FileReader,FileWriter四种最为常用的流二、FileInputStream1)FileInputStream概念              FileInputStream流被称为文件字节输入流,意思指对文件数据…

  • USB大容量存储设备_usb网卡变成大容量存储设备

    USB大容量存储设备_usb网卡变成大容量存储设备[USB开发]USB大容量存储设备的开发cxl84发表于2008-3-1723:24:00USB是目前在打印机,数字存储设备,输入/输出设备,数码像机,MP3播放器等其他周边设备中得到广泛应用的连接方式。USB设备具有使用方便,速度快,连接灵活,即插即用,总线供电等优点。基于USB接口的大容量存储设备(USBMassStorage)应运而生,目前市场上的这类设备主要有:USB移

  • qq客服代码实现过程

    qq客服代码实现过程

  • Windows文件名长度限制

    win7x64位环境:260个长度是作为总的文件名长度限制。例如:所在文件夹的长度为50则文件名的长度被限制在210之下,超出的话会被进行截断。如果在程序中的话,超出长度的话MoveFile/CopyFile会返回错误,处理失败。例子:1.我手动在C:\建立一个文件,使用280个长度进行重命名,实际生成的却是文件名是256个

  • 【转载】C#相等性比较

    【转载】C#相等性比较

    2021年11月21日
  • php对接亿乐社区,亿乐社区对接教程

    php对接亿乐社区,亿乐社区对接教程###:-:**亿乐社区**###1、打开网站网站:[http://www.124sq.cn/](http://www.124sq.cn/)有账号的直接登录,没有账号的注册一个###2、选择商品ID在左侧目录栏选一个,这里选择的是`刷名片赞专区`,然后选择一个商品点开![](https://img.kancloud.cn/b3/9f/b39f76546ed13c86ab2153247bc…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号