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会更好。

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm 使用 anaconda 环境[通俗易懂]

    pycharm 使用 anaconda 环境[通俗易懂]两个方法一:从annaconda内部打开pycharm这里有个下拉框可以选选择你要的anaconda环境再launch你的pycharm但有时候好像不大灵光还是用不上这个环境二:方法二就是万能方法从pycharm内部来配置环境,非常简单。界面最右上角齿轮图标,点击。找到interpreter这里下拉框可以选,发现没有anaconda的环境,你就showall然后点左上角加号选anaconda环境,再去添加你已经存在的anaconda环境。…

    2022年8月28日
    4
  • Matlab赋值_matlab二维数组赋值

    Matlab赋值_matlab二维数组赋值clear;clc;x=[23457810111415161819];y=[106。42108。26109。58109。5110109。93110。49110。59110。6110。9110。76111111。2];x3=min(x):0。1:max(x);%可以放在循环外%v=zeros(3,6);没有必要,需要的话可以,v=[];forn=1:…

    2022年9月27日
    2
  • 使用python,openpyxl教你轻松搞定了excel大数据写入。大量数据导入无忧。

    使用python,openpyxl教你轻松搞定了excel大数据写入。大量数据导入无忧。

    2021年9月18日
    155
  • intellijidea2021最新激活码(JetBrains全家桶)[通俗易懂]

    (intellijidea2021最新激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~BI7JCUH1TG-eyJsaWNlb…

    2022年3月22日
    63
  • Python对字典根据键值分组进行排序

    Python对字典根据键值分组进行排序

    2021年11月22日
    70
  • R语言绘制火山图_r语言画曲线图

    R语言绘制火山图_r语言画曲线图基因表达差异火山图提到差异火山图,相信很多同学肯定不陌生。因为形似火山(喷发),所以称为火山图。差异火山图最常见于转录组数据的分析中,在基因表达层面,用于展示两组间表达量上调和下调的基因。常规的火山图中主要包含了两个重要信息,差异表达倍数(FoldChange值,简称FC,作图时会对FC进行log转化,根据logFC值的正负判断这些基因的表达量是上调了还是下调了)以及统计学显著性p值(p-value,通常是FDR校正后的p值,根据校正后p值判断基因表达量上调或下调是否具有显著性)。因此在判..

    2022年10月19日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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