非缓冲文件系统

时间:2010-05-09 12:06:01  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:它不设文件结构体指针,只能读写二进制文件,但效率高、速度快,由于A N S I标准不再包括非缓冲文件系统,因此建议大家最好不要选择它。本书只作简单介绍。1. 文件的打开与关闭非缓冲文件系统不是A N S I标准定义的,是U N I X型I / O系统的一员,所以,其原型位于i o . h文件中。打开文件:int open(char *fname,int acces;s)打开文件名为f n a m e,以...
  正文:前面介绍的缓冲文件系统是借助文件结构体指针来对文件进行管理,通过文件指针来对
文件进行访问,既可以读写字符、字符串、格式化数据,也可以读写二进制数据。非缓冲文
件系统依赖于操作系统,通过操作系统的功能对文件进行读写,是系统级的输入输出,它不
设文件结构体指针,只能读写二进制文件,但效率高、速度快,由于A N S I标准不再包括非缓
冲文件系统,因此建议大家最好不要选择它。本书只作简单介绍。
1. 文件的打开与关闭
非缓冲文件系统不是A N S I标准定义的,是U N I X型I / O系统的一员,所以,其原型位于
i o . h文件中。
打开文件:
int open(char *fname,int acces;s)
打开文件名为f n a m e,以a c c e s s方式访问:
a c c e s s的值为:O _ R D O N LY 只读
O _ W R O N LY 只写
O _ R D W R 读写
关闭文件:
close(int fd);
下述程序用U N I X系统打开和关闭一个文件:
#include "io.h"
#include "fcntl.h"
#include "sysstat.h"
m a i n ( a r g c , a r g v )
int argc;
char *argv[]
{
int fd;
if((fd=open(argv[1],O_RDONLY))==-1) 以 /只*读方式打开文件*/
{
printf("cannt open file!");
e x i t ( 0 ) ;
}
printf("file existent!");
if (close(fd)) printf("error in closing filen");
}
2. 文件的读写
对非缓冲文件系统的读写函数的原型在i o . h头文件中,其调用形式为:
int read(int fd,void *buf,int count)
r e a d ( )函数从f d说明的文件中读取c o u n t个字节到b u f所指向的缓冲区。函数的返回值是实际读写的字节数。
int write(int fd,void *buf,int count)
w r i t e ( )函数把c o u n t个字节从b u f写入到f d说明的文件中。函数的返回值是实际写入的字节
数。
下面例子从文件T E S T. T S T中读取它的前半1 0 0个字节并放到数组b u ff e r中。
#include "io.h"
#include "stdio.h"
#include "fcntl.h"
m a i n ( )
{
int fd;
char buffer[100];
if ((fd=open("TEST.TST",O_RDONLY))==-1)打 /开*文件*/
{
printf("cannot open file !n");
e x i t ( 0 ) ;
}
if (read(fd,buffer,100)!=100) / *判断读写的字节数是否正确* /
printf("Possible read error.");
}

非缓冲文件系统》由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Language/VC/2010-05-09/13955.html


关键字:

关于《非缓冲文件系统》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td