1. 程式人生 > >使用FILE檔案指標進行檔案的操作相關函式

使用FILE檔案指標進行檔案的操作相關函式

VC中stdio.h中FILE結構定義:

struct _iobuf {
        char *_ptr;
        int   _cnt;
        char *_base;
        int   _flag;
        int   _file;
        int   _charbuf;
        int   _bufsiz;
        char *_tmpfname;
        };
typedef struct _iobuf FILE;

1.  fopen:開啟一個檔案

        第二個函式mode表示開啟方式:

     r 以

只讀方式開啟檔案,該檔案必須存在。

  r+ 以可讀寫方式開啟檔案,該檔案必須存在。

  rb+ 讀寫開啟一個二進位制檔案,允許讀資料。

  rw+ 讀寫開啟一個文字檔案,允許讀和寫。

  w 開啟只寫檔案,若檔案存在則檔案長度清為0,即該檔案內容會消失。若檔案不存在則建立該檔案。

  w+ 開啟可讀寫檔案,若檔案存在則檔案長度清為零,即該檔案內容會消失。若檔案不存在則建立該檔案。

  a 以附加的方式開啟只寫檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾,即檔案原先的內容會被保留。(EOF符保留)

  a+ 以附加方式開啟可讀寫的檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾後,即檔案原先的內容會被保留。 (原來的EOF符不保留)

  wb 只寫開啟或新建一個二進位制檔案;只允許寫資料。

  wb+ 讀寫開啟或建立一個二進位制檔案,允許讀和寫。

  wt+ 讀寫開啟或著建立一個文字檔案;允許讀寫。

  at+ 讀寫開啟一個文字檔案,允許讀或在文字末追加資料。

  ab+ 讀寫開啟一個二進位制檔案,允許讀或在檔案末追加資料。

2. fclose:關閉開啟的檔案流

       使用fclose函式就可以把緩衝區內最後剩餘的資料輸出到磁碟檔案中,並釋放檔案指標和有關的緩衝區。

       如果流成功關閉,fclose 返回 0,否則返回EOF(-1)。

    如果流為NULL,而且程式可以繼續執行,fclose設定error number給EINVAL,並返回EOF。

3. fread: 從一個檔案流中讀資料

  函式原型::size_t fread(void*buffer,size_tsize,size_tcount,FILE*stream); 

  參 數:

    (1) 用於接收資料的地址(指標)(buffer

    (2) 單個元素的大小(size) :單位是位元組而不是位,例如讀取一個int型資料就是4個位元組

       (3) 元素個數(count

    (4) 提供資料的檔案指標(stream)

  返回值:讀取的元素的個數

4. fwrite:向檔案寫入資料

        注意:這個函式以二進位制形式對檔案進行操作,不侷限於文字檔案

     函式原型::size_t fwrite(const void* buffer,size_t size,size_t count,FILE* stream);

  引數:  

        (1)buffer:是一個指標,對fwrite來說,是要輸出資料的地址。

  (2)size:要寫入內容的單位元組數;

  (3)count:要進行寫入size位元組的資料項的個數;

  (4)stream:目標檔案指標。

  (5)返回實際寫入的資料項個數count

5.  ftell,_ftelli64:返回檔案的遊標位置:

          用於得到檔案位置指標當前位置相對於檔案首的偏移位元組數。

6. fseek,_fseeki64: 重定位檔案流上的檔案內部位置指標

  注意:不是定位檔案指標,檔案指標指向檔案/流。

        位置指標指向檔案內部的位元組位置,隨著檔案的讀取會移動,檔案指標如果不重新賦值將不會改變指向別的檔案。

        函式原型::int fseek(FILE *stream, long offset, int fromwhere);

  引數:  

        (1)FILE *:檔案流;

  (2)offset:指標偏移量;

  (3)fromwhere:偏移起始位置:

                 SEEK_SET(0): 檔案開頭

                 SEEK_CUR(1): 當前位置

                 SEEK_END(2): 檔案結尾

相關推薦

使用FILE檔案指標進行檔案操作相關函式

VC中stdio.h中FILE結構定義: struct _iobuf {         char *_ptr;         int   _cnt;         char *_base;         int   _flag;         int   _fil

如何使用檔案的fseek函式檔案指標進行操作

C語言fseek()函式:移動檔案的讀寫指標到指定的位置 <上一節下一節> 分享到:QQ空間新浪微博騰訊微博豆瓣人人網 標頭檔案:#include <stdio.h> fseek()函式可以移動檔案的讀寫指標到指定的位置,即移動當前檔案的位置指標

關於Python中讀取寫入檔案進行檔案與使用者互動的操作

一、提前知識點 在python中是同樣和其他語言一樣可以進行檔案的讀取寫入操作,值得注意的是,Python中開啟檔案讀取的方式有幾種,分別是以下幾種: 1 f = open('username.txt') 2 first_line = f.readline() 3 print('fi

嵌入式學習28(linux系統函式檔案、資料夾管理相關函式

步入linux系統函式的學習了,隨時隨地都要man一下,忌死記。 linux系統呼叫:即linux作業系統提供的函式,只能用於linux。 命令就是一些函式 1)檔案系統管理相關的系統呼叫 檔

Python檔案和資料夾處理相關函式:刪除、複製、移動

這裡使用的是Python3.7版本,在Win10系統上執行 有關刪除檔案、資料夾的問題,網上有不少資料,但作為一個新手,感覺很多都介紹的模稜兩可,必須要自己測試過才能知道到底是怎麼回事,因此在這裡簡單介紹一下Python處理檔案和資料夾的函式。 目錄 刪除

例項158 移動檔案指標檔案內部寫入資料

[例項描述] 在每一個檔案都有檔案指標,當檔案指標指向檔案的哪個位置,下一個被輸入的資料會從當前位置開始寫出。本例項實現如何移動檔案指標在檔案中部寫入資料,原始檔在Hello後寫入World, 實現過程: 該例旨在演示隱式資料轉換,用到一個float型的變數i(用於表達重量 1),一

使用QFile進行檔案操作(QFile可以使用FILE *指標,還必須指定AutoCloseHandle)

QFile類我我們提供了操作檔案的常用功能。它是一種io裝置,可以用來讀寫文字檔案和二進位制檔案,也可以用來讀寫Qt的資原始檔。QFile類可以單獨使用,該類本身提供了read/write函式,但更方便的方式是,將QFile和QTextStream或QDataStream一起使用。 一般情況下,使用QFil

系統程序的檢視(相關操作)及多臺主機相連進行檔案的上傳下載,遠端複製及ssh操作的應用

###系統程序及服務控制### 1.##什麼是程序   程序是指在系統中正在執行的一個應用程式 3.檢視程序 1)圖形方式檢視 gnome-system-monitor 2)程序檢視命令       ps  &nbs

檔案和目錄操作相關函式

獲取檔案資訊: #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> // 成功返回0,出錯返回-1 int stat(const char *path, struct stat *b

20181127(檔案指標函式相關

一、檔案內指標的移動f.seek 強調:只有t模式下的read(n),n代表的是字元個數,除此以外都是以位元組為單位。 with open('a.txt',mode='rt',encoding='utf-8') as f: res=f.read(4) # 讀取前四個字元 print(res) &

C#高階篇-File 檔案操作相關

1.檢視檔案資料夾的資訊 通過FileInfo類獲取檔案相關資訊 static void Main(string[] args) { //相對路徑:找當前程式的檔案路徑 //絕對路徑:加上檔案完整的路徑名

lseek函式 操作檔案指標,實現計算檔案長度,構建空洞檔案

lseek(fd,   偏移量,   參照物即從哪裡開始移動); off_t lseek(int fd, off_t offset, int whence); 計算檔案長度程式碼: #include <sys/types.h> #include <uni

檔案指標偏移的相關函式(rewind ftell fseek)

#include "stdafx.h" #if 0 ----rewind void rewind ( FILE * stream ); 函式功能:將檔案指標重新指向一個流的開頭。 如果一個檔案具有讀寫屬性,當我們寫完檔案,需要讀的時候, 此時會遇到檔案結尾現象。此時就需要 rewind --

Linux下對檔案操作相關函式簡介及用法

主要涉及的函式原型及引數解釋: open函式:用於開啟一個普通檔案      函式原型  int open(const char *path,int flag,/*int mode*/);  引數解釋:      const char *path:  即相應路徑下的檔

Linux C的檔案操作相關函式

一、Linux檔案的屬性及檔案的分類 二、檔案描述符的概念及作用 三、系統呼叫的概念 三、不帶快取的檔案I/O操作的相關函式 四、帶快取的檔案I/O操作的相關函式 一、Linux檔案的屬性 檔案的屬性: 我們在Gcc編譯器輸入“ ls  -al"指令時,除了有不同

對linux下程式設計中用到的標頭檔案頭的一些定義及函式進行解譯(本人使用過程中用到過的不明白的定義及函式

1、typedef unsigned long int pthread_t; 型別定義: typedef unsigned long int pthread_t; //come from /usr/include/bits/pthreadtypes.h 用途:pthread_t用於宣

Node.js中fs檔案系統-與檔案file相關

1.首先引入fs檔案模組; //讀取檔案; fs.readFile(path[, options], callback)  path:檔名; options:檔案讀取方式; callback:回撥函式;回撥函式有兩個引數err data  其中data是檔案的

linux之檔案及目錄許可權的相關操作

1.檔案許可權控制 首先我們先搞清一個問題:許可權存在的意義?  在我們的印象中檔案是用來存放實際資料的,目錄是用來存放檔案的,但其實目錄的主要作用是用來記錄檔名列表,檔名與目錄有強烈的關聯。許可權就是使用者或者其他人對這些目錄以及檔案能進行些什麼操作。 檔案的檢視 當我們建立

檔案I/O相關函式

open()和openat()函式: #include <fcntl.h> // 成功返回檔案描述符,出錯返回-1 int open(const char *path, int oflag, ... /* mode_t mode */); int openat(int fd, const

Linux:基礎IO(cIO庫函式詳細介紹)(IO系統呼叫介面詳細介紹)(兩者關係:檔案描述符和檔案指標

目錄 c系統中的庫函式: fopen:開啟檔案 fclose:關閉檔案 fwrite:向檔案寫入一個數據塊 fread:讀寫 fprintf:格式化輸出到一個流/檔案中 fseek:移動/跳轉 到當前 讀取/寫入位置 fgets:獲取字串 fput:把字串寫入到指