日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

c语言fgetpos的参数,C语言fgetpos()函数:获得当前文件的读写指针(转)

發布時間:2025/3/21 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言fgetpos的参数,C语言fgetpos()函数:获得当前文件的读写指针(转) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

頭文件:#include

fgetpos()函數獲得當前文件的指針所指的位置,并把該指針所指的位置信息存放到pos所指的對象中。pos以內部格式存儲,僅由fgetpos()和fsetpos()使用。fsetpos()的功能與fgetpos()相反,用來設置當前文件的指針。fgetpos()的原型為:

int fgetpos( FILE *fp, fpos_t *pos );

【參數】fp為當前文件流的指針,pos為指向fpos_t類型的指針。

fpos_t是用來表示文件讀寫指針位置的類型,用來指明正在操作的文件中讀或寫的位置,文件頭處為0。fpos_t在不同的平臺下有不同的類型。

在windows下,fpos_t是一個64位整數,可以直接賦值,如fpos_t = 12。

在linux下,fpos_t是一個結構體,定義為:

typedef struct

{

__off_t __pos; // 雙下劃線

__mbstate_t __state;

}fpos_t;

fpos_t.__pos才是指向當前位置的整數,可以進行賦值,如 fpos_t.__pos = 12。

【返回值】成功返回0,失敗返回非0,并設置errno。

【實例】window上應用fgetpos函數取得當前文件的指針所指的位置。

#include

#include

int main(void)

{

FILE *fp;

char string[] = "This is a test";

fpos_t pos;

// 以讀寫方式打開一個名為test.txt的文件

fp = fopen("test.txt", "w+");

//\將字符串寫入文件

fwrite(string, strlen(string), 1, fp);

// 取得指針位置并存入&pos所指向的對象

fgetpos(fp, &pos);

printf("The file pointer is at byte %ld\n", pos);

// 重設文件指針的位置

fseek(fp,3,0);

// 再次取得指針位置并存入&pos所指向的對象

fgetpos(fp, &pos);

printf("The file pointer is at byte %ld\n", pos);

fclose(fp);

return 0;

}

運行結果:

The file pointer is at byte 14

The file pointer is at byte 3

首先,程序以讀寫方式打開一個名為test.txt的文件,并把字符串"This is a test"寫入文件。注意:字符串共14個字節,地址為0~13。用fwrite函數寫入后,文件指針自動指向文件最后一個字節的下一個位置。即這時的fp的值應該是14。

再用fgetpos函數取得指針位置并存入&pos所指向的對象,此時, pos中的內容為14。然后在屏幕上顯示出The file pointer is at byte 14。

再用fseek函數重設文件指針的位置,讓fp的值為3,即指向文件中第4個字節。

再次取得指針位置并存入&pos所指向的對象。然后在屏幕上顯示出The file pointer is at byte 3。

注意:在linux下,不能這樣定義pos:

fpos_t? *? pos;

fgetpos(fp,pos);

必須這樣定義:

fpos_t? pos;

fgetpos(fp,&pos);

因為pos必須是一個分配好內存空間的參數。第一種方式僅僅是定義了一個指針,并沒有分配空間。如果改為下面的定義方式,則可以編譯通過:

fpos_t? *? pos;

pos = (fpos_t)malloc(12);

fgetpos(fp,pos);

C語言lseek()函數:移動文件的讀寫位置

相關函數:dup, open, fseek 頭文件:#include ? ?#include 定義函數:off_t lseek ...

C語言開發函數庫時利用不透明指針對外隱藏結構體細節

1 模塊化設計要求庫接口隱藏實現細節 作為一個函數庫來說,盡力降低和其調用方的耦合.是最主要的設計標準. C語言,作為經典"程序=數據結構+算法"的踐行者,在實現函數庫的時候,必定 ...

C語言open()函數:打開文件函數(轉)

相關函數:read, write, fcntl, close, link, stat, umask, unlink, fopen 頭文件:#include ? ...

C語言stat()函數:獲取文件狀態

相關函數:fstat, lstat, chmod, chown, readlink, utime 頭文件:#include ?#include

linux c語言 select函數用法

linux c語言 select函數用法 表頭文件 #i nclude #i nclude #i nclude

python3文件的讀寫操作

open函數:對文件進行讀寫操作前,先打開文件,獲取文件的句柄: open(file, mode,?encoding, buffering) 參數說明 file_name:一個包含了你要訪問的文件路徑 ...

【C語言入門教程】5.6 函數庫和文件

函數庫是為代碼復用建立的,將同一類型,需要在不同的程序里使用的函數放置在一起,就組成了一個函數庫.如 C 語言的標準庫,它集合了開發者常用的函數.開發者自行編寫的函數也可以組成函數庫,通常稱之為自定義 ...

C語言文件的讀寫

對文件的讀和寫是最常用的文件操作.在C語言中提供了多種文件讀寫的函數: 字符讀寫函數? :fgetc和fputc 字符串讀寫函數:fgets和fputs 數據塊讀寫函數:freed和fwrite 格式 ...

C語言printf()函數:格式化輸出函數

C語言printf()函數:格式化輸出函數 頭文件:#include printf()函數是最常用的格式化輸出函數,其原型為: ? ? int printf( char ...

隨機推薦

geotrellis使用(十)緩沖區分析以及多種類型要素柵格化

目錄 前言 緩沖區分析 多種類型要素柵格化 總結 參考鏈接 一.前言 ? ? ? ?上兩篇文章介紹了如何使用Geotrellis進行矢量數據柵格化以及柵格渲染,本文主要介紹柵格化過程中常用到的緩沖區分 ...

HDU2845 DP

Beans Time Limit: 2000/1000 MS (Java/Others)????Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

案例分析:java中substring引發的Full gc

問題定位 由于應用頻繁地Full gc,就dump了內存下來用MAT分析,發現有個map占用了98%的內存,于是找到這個map private ConcurrentMap

luoguP4072 [SDOI2016]征途

[SDOI2016]征途 大體 大概就是推推公式,發現很傻逼的\(n^3\)DP get60 進一步我們發現狀態不能入手,考慮優化轉移 套個斜率優化板子 每一層轉移來一次斜率優化 思路 先便便式子 \ ...

C/S通信模型與B/S通信模型介紹

1.客戶端與服務器之間的通信模型 基于Socket連接的客戶端與服務器之間的通信模型圖如上圖所示,整個通信過程如下所示: (1) 服務器端首先啟動監聽程序,對指定的端口進行監聽,等待接收客戶端的連接請 ...

ashx、aspx、ASP.NET MVC

ashx:ProcessRequest(IHandler的方法)aspx:Page_Load(Page繼承IHttpHandler)(RouteHandler)(HttpHandler)(MvcHan ...

SlidingMenu官方實例分析4——AttachExample

AttachExample這個類沒有繼承BaseActivity,而是FragmentActivity,寫到這好像感悟到了 為什么官方現在都推薦使用Fragment而不是Activity,因為Frag ...

SP16549 QTREE6 - Query on a tree VI LCT維護顏色聯通塊

\(\color{#0066ff}{ 題目描述 }\) 給你一棵n個點的樹,編號1~n.每個點可以是黑色,可以是白色.初始時所有點都是黑色.下面有兩種操作請你操作給我們看: 0 u:詢問有多少個節點v ...

ubuntu修改字體大小

字體大小可以整體修改 System Settings -> Displays -> Scale for menu and title bars

SubSonic框架使用圖解

簡介:SubSonic框架是一個優秀的.開源的ORM映射框架,同時提供符合自身需要的代碼生成器. 官方下載地址:http://subsonicproject.com/Download 明白了SubSo ...

總結

以上是生活随笔為你收集整理的c语言fgetpos的参数,C语言fgetpos()函数:获得当前文件的读写指针(转)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。