zoukankan      html  css  js  c++  java
  • fread()

    read(由已打开的文件读取数据)

    包含头文件:#include
    ssize_t read(int fd,void * buf ,size_t count);
    函数说明
     
      read()会把参数fd 所指的文件传送count个字节到buf指针所指的内存中。若参数count为0,则read()不会有作用并返回0。返回值为实际读取到的字节数,如果返回0,表示已到达文件尾或是无可读取的数据,此外文件读写位置会随读取到的字节移动。
     
      附加说明
     
      如果顺利read()会返回实际读到的字节数,最好能将返回值与参数count 作比较,若返回的字节数比要求读取的字节数少,则有可能读到了文件尾、从管道(pipe)或终端机读取,或者是read()被信号中断了读取动作。当有错误发生时则返回-1,错误代码存入errno中,而文件读写位置则无法预期。
     
      错误代码
     
      EINTR 此调用被信号所中断。
     
      EAGAIN 当使用不可阻断I/O 时(O_NONBLOCK),若无数据可读取则返回此值。
     
      EBADF 参数fd 非有效的文件描述词,或该文件已关闭。
     
    fread
     
      功 能: 从一个流中读数据
     
      函数原型: int fread(void *ptr, int size, int nitems, FILE *stream);
     
      参 数:用于接收数据的地址(指针)(ptr)
     
      单个元素的大小(size) :单位是字节而不是位,例如读取一个整数值就是4
     
      元素个数(nitems)
     
      提供数据的文件指针(stream)
     
      返回值:成功读取的元素个数
     实例:#include
     
      #include <stdio.h>
     
      int main(void)
     
      {
     
      FILE *stream;
     
      char msg[] = "this is a test";
     
      char buf[20];
     
      if ((stream = fopen("DUMMY.FIL", "w+"))
     
      == NULL)
     
      {
     
      fprintf(stderr,
     
      "Cannot open output file. ");
     
      return 1;
     
      }
     
      
     
      fwrite(msg, strlen(msg)+1, 1, stream);
     
      
     
      fseek(stream, 0, SEEK_SET);
     
      
     
      fread(buf, strlen(msg)+1, 1,stream);
     
      printf("%s ", buf);
     
      fclose(stream);
     
      return 0;
     
      }
  • 相关阅读:
    网口
    uart
    wwww
    ddr相关的配置经验
    嵌入式的指令集和寄存器
    协议栈
    《贝贝GO》服务条款
    《贝贝GO》隐私政策
    《贝贝GO》技术支持
    《王牌助理》隐私政策
  • 原文地址:https://www.cnblogs.com/to-creat/p/5643981.html
Copyright © 2011-2022 走看看