程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> 非緩沖文件系統

非緩沖文件系統

編輯:C語言基礎知識
   前面介紹的緩沖文件系統是借助文件結構體指針來對文件進行治理,通過文件指針來對
   文件進行訪問,既可以讀寫字符、字符串、格式化數據,也可以讀寫二進制數據。非緩沖文
   件系統依靠於操作系統,通過操作系統的功能對文件進行讀寫,是系統級的輸入輸出,它不
   設文件結構體指針,只能讀寫二進制文件,但效率高、速度快,由於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 file ");
   }
   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 ! ");
   e x i t ( 0 ) ;
   }
   if (read(fd,buffer,100)!=100) / *判定讀寫的字節數是否正確* /
   printf("Possible read error.");
  
   }
  
  
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved