歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

C語言文件定位相關函數

文件中有一個位置指針,指向當前讀寫的位置,在順序讀寫一個文件的過程中,沒讀寫一個字符,位置指針自動滑向下一個字符位置。可以移動這個位置指針,達到隨即讀寫目的。下面是幾個和文件定位有關的函數。

1.rewind(fp);

fp為文件指針。返回值為void 即無返回值

該函數的作用是使位置指針重新返回文件的開頭。

2.feek(fp,位移量,起始點);

fp是文件指針;

位移量:以起始點為基准向前滑動的字節數。位移量小於0則表示向後滑。ANSI C和大多數C版本要求位移量是long型數據。這樣當文件長度大於64KB時不至出問題。ANSI C標准規定在數字末尾加個字母L,就表示是long型。

起始點可用數字表示為0,1,2,也可用宏名表示

起始點                                          名字                   用數字代表

文件開始                          SEEK_SET                                   0

文件當前位置                  SEEK_CUR                                    1

文件末尾                          SEEK_END                                    2

另外:fseek一般用於二進制文件,文本文件在字符替換的時候往往發生混亂。

例子:fseek(fp,100L,0);fseek(fp,30L,1);fseek(fp,-30L,SEEK_END);

fseek()的返回值為:

如果成功返回0值,失敗的話返回什麼書上沒說,網上也沒人說。以下是查到的英文解釋。看不懂啊!誰能說說

If successful, fseek and _fseeki64 returns 0. Otherwise, it returns a nonzero value. On devices incapable of seeking, the return value is undefined. If stream is a null pointer, or if origin is not one of allowed values described below, fseek and _fseeki64 invoke the invalid parameter handler, as described in Parameter Validation. If execution is allowed to continue, these functions set errno to EINVAL and return -1. 

3.ftell(fp)如果成功返回當前文件指針的位置,返回值為long型。否則返回-1並設置全局變量errno指出錯誤類型。

Copyright © Linux教程網 All Rights Reserved