⑴ 文件指針是什麼文件指針的值又是什麼
在文件操作系統中,同時打開的文件個數是受限的,因此在操作系統中對於文件的操作專門設置了一個區域,這個區中為每個文件操作開設了一塊操作數據區,其中每個區對應一個文件操作,記錄文件位置,當前文件指針位置等,如果進行文件操作需要獲得系統分配的一塊有效的數據區,這個數據區的編號就是文件句柄,在c中是FILE*類型
操作數據區中,有一個文件指針,存放當前可讀寫文件位置,是一個位元組計數值,在打開當前文件後,這個指針指向文件第1個字元,取值是0,那麼如果馬上讀寫文件都是從文件第1個位元組開始,假定寫入或讀取了1個位元組內容,文件指針在操作完成後自動變為1,指向下一個可操作的位置。文件指針可以順序後移(增加值)也可以前移(減少值)當然要藉助特殊函數。
假定要獲取文件尺寸,可以在打開文件後(文件指針內容為0)利用文件指針操作函數(比如feek)令文件指針轉到文件尾部,這時文件指針取值就是文件的實際位元組數了。
⑵ 使用fopen()函數打開一個文件時,讀寫指針一定在文件首對不對
成功打開讀寫文件時指針一定在文件首。但打開添加 文件時,在文件尾。用rewind(fp) 可以回繞到文件首。
根據實際的讀寫要求。如果是續寫,那起始的指針位置就在文件的末尾。
通常填入「附加」;另外還可以使用「a+」來讀和寫更新。該文件已更新為「r+」讀和寫更新。將更新寫入「w+」。
fopen函數在當前目錄中打開一個文件,調用的一般形式是:
文件指針名稱=fopen(文件名,文件模式);
「文件指針名稱」必須聲明為指向文件類型的指針;
「文件名」是打開文件的文件名;
「文件模式」是指文件的類型和操作要求;
「文件名」是字元串常量或字元數組。
(2)文件讀寫指針指向哪個位置擴展閱讀:
if((fp=fopen("c:\hzk16","rb"))==NULL)
{
printf(" error on open c:\hzk16 file!");
getch();
exit(1);
}
這段程序的意義是,如果返回的指針為空,表示不能打開C盤根目錄下的hzk16文件,則給出提示信息「error on open c: hzk16 file!」,下一行getch()的功能是從鍵盤輸入一個字元,但不在屏幕上顯示。在這里,該行的作用是等待,只有當用戶從鍵盤敲任一鍵時,程序才繼續執行,因此用戶可利用這個等待時間閱讀出錯提示。敲鍵後執行exit(1)退出程序。
⑶ 讀寫位置指針和文件位置指針是一回事嗎
從哪裡來的這么兩個詞?讀寫位置指針 和 文件位置指針
C中操作一個文件 ,只會有一個文件指針的啊 , 這個指針指向一個結構體,結構體中有關於當前打開文件的各種信息。
如有問題,可以把你看到或讀到的內容,粘出一些來,供分析。