C語(yǔ)言-基礎(chǔ)教程-非緩沖文件系統(tǒng)

字號(hào):

前面介紹的緩沖文件系統(tǒng)是借助文件結(jié)構(gòu)體指針來(lái)對(duì)文件進(jìn)行管理,通過(guò)文件指針來(lái)對(duì)文件進(jìn)行訪問(wèn),既可以讀寫字符、字符串、格式化數(shù)據(jù),也可以讀寫二進(jìn)制數(shù)據(jù)。非緩沖文件系統(tǒng)依賴于操作系統(tǒng),通過(guò)操作系統(tǒng)的功能對(duì)文件進(jìn)行讀寫,是系統(tǒng)級(jí)的輸入輸出,它不設(shè)文件結(jié)構(gòu)體指針,只能讀寫二進(jìn)制文件,但效率高、速度快,由于ANSI標(biāo)準(zhǔn)不再包括非緩沖文件系統(tǒng),因此建議大家不要選擇它。本書只作簡(jiǎn)單介紹。
    1.文件的打開與關(guān)閉
    非緩沖文件系統(tǒng)不是ANSI標(biāo)準(zhǔn)定義的,是UNIX型I/O系統(tǒng)的一員,所以,其原型位于io.h文件中。
    打開文件:
    intopen(char*fname,intacces;s)
    打開文件名為fname,以access方式訪問(wèn):
    access的值為:O_RDONLY只讀O_WRONLY只寫O_RDWR讀寫
    關(guān)閉文件:
    close(intfd);
    下述程序用UNIX系統(tǒng)打開和關(guān)閉一個(gè)文件:
    #include"io.h"
    #include"fcntl.h"
    #include"sys\stat.h"
    main(argc,argv)
    intargc;
    char*argv[]
    {
    intfd;
    if((fd=open(argv[1],O_RDONLY))==-1)以/只*讀方式打開文件*/
    {
    printf("canntopenfile!");
    exit(0);
    }
    printf("fileexistent!");
    if(close(fd))printf("errorinclosingfile\n");
    }