网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 网络学院 >> 程序设计 >> C语言编程 >> 文章正文
  非缓冲文件系统            【字体:
非缓冲文件系统
作者:佚名    文章来源:不详    点击数:    更新时间:2007-7-2    
前面介绍的缓冲文件系统是借助文件结构体指针来对文件进行管理,通过文件指针来对
文件进行访问,既可以读写字符、字符串、格式化数据,也可以读写二进制数据。非缓冲文
件系统依赖于操作系统,通过操作系统的功能对文件进行读写,是系统级的输入输出,它不
设文件结构体指针,只能读写二进制文件,但效率高、速度快,由于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 "sys\stat.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 file\n");
}
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.");
}

 

站内文章搜索 高级搜索
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
     C语言递归
     指向指针的指针
     结构体类型变量的定义和…
     C语言文件系统应用举例
     C语言入门之运算符和表达…
     C语言教程第一章: C语言…
     C语言基础教程(一)基础…
     C语言基础教程(四)指针…
     链表的c语言实现(一)
  • [ZT]彻底搞定java文件上传zz

  • Java源文件的编译、下载、解…

  • ini配置文件常用的四个函数

  • VC/EVC/C++ 操作 ini文件源代…

  • Delphi创建Excel文件常用操作

  • 取得一个文件夹下的文件,并保…

  • 利用JDOM及XPath对XML文件进…

  • Java文件操作详解

  • JSP下载文件,直接下载文件保…

  • JAVA写的文件分割与文件合并…

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    网络学院©2007 www.23book.net
    为您提供web编程,vb编程,vc编程,服务器架设管理,数据库设计等方面的知识 站长:David