程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> Win環境下的文件讀寫

Win環境下的文件讀寫

編輯:C++入門知識

    在win環境下,有許多方法可以對文件進行讀寫操作,如MFC 中的CFile類,及一些開源的項目如QT中的QFile。開源的好得是可以多平台,而MFC只是微軟自家的東西,對於想寫跨平台的人,最好不用MFC。

   最近在寫開發時,突然碰到了一個問題,也是與讀寫文件有關,不過用的是C的方法,而不是C++,問題的表現是用C 中的Open創建的文件都是只讀的,平常很少用這個方法所在網上找了下,才發現這個函數還有一個權限參數,默認是只讀。現將C方式下的兩種文件操作歸納下

    open比起fopen是更低級別的IO操作,所以程序需要更多的人工操作

    int open(const char *path, int access,int mode)  

    path 要打開的文件路徑和名稱                            

    access 訪問模式,宏定義和含義如下:                        
        O_RDONLY         1    只讀打開                         
        O_WRONLY         2    只寫打開                         
        O_RDWR           4    讀寫打開                     
        還可選擇以下模式與以上3種基本模式相與:                    
            O_CREAT     0x0100   創建一個文件並打開                
            O_TRUNC     0x0200   打開一個已存在的文件並將文件長度設置為0,其他屬性保持         
            O_EXCL      0x0400   未使用                            
            O_APPEND    0x0800   追加打開文件                     
            O_TEXT      0x4000   打開文本文件翻譯CR-LF控制字符     
            O_BINARY    0x8000   打開二進制字符,不作CR-LF翻譯                                                        
    mode 該參數僅在access=O_CREAT方式下使用,其取值如下:      
        S_IFMT      0xF000   文件類型掩碼                      
        S_IFDIR     0x4000   目錄                              
        S_IFIFO     0x1000   FIFO 專用                         
        S_IFCHR     0x2000   字符專用                          
        S_IFBLK     0x3000   塊專用                            
        S_IFREG     0x8000   只為0x0000                        
        S_IREAD     0x0100   可讀                              
        S_IWRITE    0x0080   可寫                              
        S_IEXEC     0x0040   可執行
FILE *fopen(char *filename, char *mode)
    filename 文件名稱
    mode 打開模式:                                            
        r   只讀方式打開一個文本文件                           
        rb  只讀方式打開一個二進制文件                         
        w   只寫方式打開一個文本文件                           
        wb  只寫方式打開一個二進制文件                         
        a   追加方式打開一個文本文件                           
        ab  追加方式打開一個二進制文件                         
        r+  可讀可寫方式打開一個文本文件                       
        rb+ 可讀可寫方式打開一個二進制文件                     
        w+  可讀可寫方式創建一個文本文件                       
        wb+ 可讀可寫方式生成一個二進制文件                     
        a+  可讀可寫追加方式打開一個文本文件                   
        ab+ 可讀可寫方式追加一個二進制文件
open和fopen的區別:
前者屬於低級IO,後者是高級IO。
前者返回一個文件描述符,後者返回一個文件指針。
前者無緩沖,後者有緩沖。
前者與 read, write 等配合使用, 後者與 fread, fwrite等配合使用。
後者是在前者的基礎上擴充而來的,在大多數情況下,用後者。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved