fread函数

收藏

查看 我的收藏

719有用+1 已投票

 

fread

编辑 锁定
fread是一个函数。从一个文件流中读数据,最多读取count个项,每个项size个字节,如果调用成功返回实际读取到的项个数(小于或等于count),如果不成功或读到文件末尾返回 0。
中文名
外文名
fread
属    性
函数
参    数
buffer
函数原型
size_t fread
所属库
#include <stdio.h>

fread简介

编辑

fread函数原型

size_t fread ( void * buffer , size_t size , size_t count , FILE * stream ) ;

fread参 数

buffer
用于接收数据的 内存地址
size
要读的每个数据项的字节数,单位是 字节
count
要读count个数据项,每个数据项size个字节.
stream
输入流

fread返回值

返回真实写入的项数,若大于count则意味着产生了错误。另外,产生错误后,文件位置指示器是无法确定的。若其他stream或buffer为空指针,或在unicode模式中写入的字节数为奇数,此函数设置errno为EINVAL以及返回0.
 

fread程序例

编辑

freadC语言

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<stdio.h>
#include<string.h>
int  main( void )
{
     FILE *stream;
     char  msg[]= "this is a test" ;
     char  buf[20];
     if ((stream= fopen ( "DUMMY.FIL" , "w+" ))==NULL)
     {
         fprintf (stderr, "Can not open output file.\n" );
         return  0;
     }
     /*write some data to the file*/
     fwrite (msg,1, strlen (msg)+1,stream);
     /*sizeof(char)=1 seek to the beginning of the file*/
     fseek (stream,0,SEEK_SET);
     /*read the data and display it*/
     fread (buf,1, strlen (msg)+1,stream);
     printf ( "%s\n" ,buf);
     fclose (stream);
     return  0;
}

freadMSDN示例

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<stdio.h>
int  main( void )
{
     FILE *stream;
     charlist[30];
     inti,numread,numwritten; /*Open file in text mode:*/
     if ((stream= fopen ( "fread.out" , "w+t" ))!=NULL)
     {
         for (i=0;i<25;i++)
             list[i]=( char )( 'z' -i);  /*Write 25 characters to stream*/
         numwritten= fwrite (list, sizeof ( char ),25,stream);
         printf ( "Wrote %d items\n" ,numwritten);
         fclose (stream);
     }
     else
         printf ( "Problem opening the file\n" );
         
     if ((stream= fopen ( "fread.out" , "r+t" ))!=NULL)
     { /*Attempt to read in 25 characters*/
         numread= fread (list, sizeof ( char ),25,stream);
         printf ( "Number of items read=%d\n" ,numread);
         printf ( "Contents of buffer=%.25s\n" ,list);
         fclose (stream);
     }
     else
         printf ( "File could not be opened\n" );
}

freadPHP

?
1
2
3
4
5
6
7
8
<?php
     $handle = fopen ( "test.txt" , "rb" );
     $contents = "" ;
     while (! feof ( $handle )){
         $contents .= fread ( $handle ,8192);
     }
     fclose( $handle );
?>

freadPHP函数

编辑
(PHP 4, PHP 5)
fread -- 读取文件(可安全用于二进制文件)

fread说明

string fread( int handle, int length )
fread()文件指针handle读取最多 length 个字节。 该函数在读取完 length 个字节数,或到达 EOF 的时候,或(对于网络流)当一个包可用时就会停止读取文件,视乎先碰到哪种情况。

fread注意

在区分 二进制文件和文本文件的系统上(如 Windows)打开文件时,fopen() 函数的 mode 参数要加上 'b'。
当从网络流或者管道读取时,例如在读取从远程文件或 popen()以及 proc_open()的返回时,读取会在一个包可用之后停止。这意味着你应该如下例所示将 数据收集起来合并成大块。
如果你只是想将一个文件的内容读入到一个字符串中,用 file_get_contents(),它的性能比上面的代码好得多。

freadMATLAB函数

编辑

fread功能:

fread函数可从文件中读取二进制数据

fread语法:

A = fread(fid, count)
A = fread(fid, count, precision)
其中fid为指针所指文件中的当前位置,count指读取的数据个数, precision表示以什么格式的数据类型读取数据。

fread例子:

fid = fopen('alphabet.txt', 'r');
  c = fread(fid, 5)'
  c =
  65 66 67 68 69
  fclose(fid);
程序说明:alphabet文件中按顺序存储着26个英文字母,读取文件之前要先打开文件,由于未指定读取数据的类型,所以程序指定默认类型为无符号字符型即uchar,65、66、67、68、69代表A、B、C、D、E,文件用完还要记得关闭文件,以便释放指针。
fid = fopen('alphabet.txt', 'r');
  c = fread(fid, '*char')'
  c =
  ABCDEFGHIJKLMNOPQRSTUVWXYZ
  fclose(fid);
程序说明:此程序未指定数据个数,而默认为全部数据,所以显示了文件中的所有数据。

转载于:https://www.cnblogs.com/AAA-li/p/5891858.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值