Linux下的C庫中是否有可以設置文件長度的函數?在Windows下我知道有一個SetFileLength()函數。 如果沒有,在不刪除和重寫的情況下縮短文件的最佳方式是什麼?Linux的C庫中的SetFileLength()函數
0
A
回答
5
您可以使用truncate function。
int truncate(const char *path, off_t length);
從手冊頁:
「的截斷()和ftruncate()函數引起的路徑指定的或由FD引用的常規文件被截斷的大小的精確長度字節。如果文件以前是超過此大小的,額外的數據丟失。如果文件以前是短,它擴展,並且擴展部分內容空字節」
3
#include <unistd.h>
#include <sys/types.h>
int truncate(const char *path, off_t length);
int ftruncate(int fd, off_t length);
從它的手冊頁:
的截斷()和ftruncate() 功能導致命名 由路徑或通過FD引用是 截斷爲一個尺寸精確 長度字節的常規文件。
如果以前的文件比這個大小大 ,額外的數據是 丟失。如果文件先前爲 更短,則將其擴展,並且 擴展部分讀取爲空字節 ('\ 0')。
相關問題
- 1. 從Linux中的C++庫調用C++函數
- 2. 在c(linux)中的函數問題
- 3. C/C++中的四元數函數庫
- 4. linux c/C++ preg_replace類型的函數?
- 5. C數學庫中的中值函數?
- 6. Linux C創建無頭文件庫的自定義printf函數
- 7. pthread_create函數格式和指針 - C Linux的POSIX庫
- 8. Linux shmget()函數在c + +
- 9. 如何在C用戶程序中使用linux庫函數?
- 10. 來自PostgreSQL數據庫和Linux的C/C中的時間戳?
- 11. linux中的sem_post sem_wait函數
- 12. 轉換的C函數Windows動態鏈接庫的使用在Python在Linux中
- 13. C庫在Linux
- 14. 靜態庫中的過度C函數
- 15. c#前端GUI調用linux C++函數
- 16. HTTP解析庫的Linux C++
- 17. 用於socat Linux的C庫
- 18. 函數C++中的標準庫函數的重載
- 19. 如何從Linux中的庫和地址獲取函數名稱C
- 20. 在linux中檢查庫中函數的存在
- 21. linux中fork()函數
- 22. C++數學函數問題(在Linux下)
- 23. Linux中c/C++的加密庫和壓縮庫
- 24. Java或C#中的基於Linux的mysql數據庫
- 25. DECLARE_WORK中函數的Linux傳輸參數
- 26. Linux Clang和Objective-C庫庫
- 27. LEDA庫(C++庫)設置linux
- 28. Linux共享庫C++
- 29. Linux | C++中的分段錯誤 - 由於函數ifstream
- 30. 在Linux內核中調用entry_32.S的C函數
謝謝,但這是便攜式? – codymanix 2008-12-10 23:38:53