收藏
查看
我的收藏
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);
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);
c = fread(fid, '*char')'
c =
ABCDEFGHIJKLMNOPQRSTUVWXYZ
fclose(fid);
程序说明:此程序未指定数据个数,而默认为全部数据,所以显示了文件中的所有数据。