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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ftruncate函数的功能及使用

發布時間:2024/2/28 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ftruncate函数的功能及使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ftruncate()

函數功能:改變文件大小

相關函數:open、truncate
表頭文件:#include <unistd.h>
函數原型:int ftruncate(int fd, off_t??length)
函數說明:ftruncate()會將參數fd指定的文件大小改為參數length指定的大小。參數fd為已打開的文件描述詞,而且必須是以寫入模式打開的文件。如果原來的文件件大小比參數length大,則超過的部分會被刪去
返 回??值:0、-1
錯誤原因:errno
??????????EBADF?????參數fd文件描述詞為無效的或該文件已關閉
??????????EINVAL??? 參數fd為一socket并非文件,或是該文件并非以寫入模式打開

以上引用自http://www.cnscn.org/showthread.php?t=659

?

使用方法:fd一般可以fileno(FILE *fp)獲取,標示文件當前的大小,lenggth則可由用戶定義。此函數一般用在文件初始化或者重新為文件分配空間時。

注意事項:此函數并未實質性的向磁盤寫入數據,只是分配了一定的空間供當前文件使用。當fd<length時,此時如果使用十六進制編輯工具打開該文件,你會發現文件末尾多了很多00,這就是執行這個函數后的效果。如果發生系統復位或者裝置掉電以后,該函數所產生的作用將被文件系統忽略,也就是說它所分配的空間將不能被識別,文件的大小將會是最后一次寫入操作的區域大小,而非ftruncate分配的空間大小,也就是說,文件大小有可能會被改變。

解決方法:可以在執行完ftruncate之后,在新空間的末尾寫入一個或以上字節的數據(不為Ox00),這樣新空間則不為空,文件系統會把這部分空間當成這個文件的私有空間處理,而不會出現文件大小改變的錯誤。

總結

以上是生活随笔為你收集整理的ftruncate函数的功能及使用的全部內容,希望文章能夠幫你解決所遇到的問題。

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