簡要對(duì)比C語言中的truncate()函數(shù)與ftruncate()函數(shù)
C語言truncate()函數(shù):改變文件大小
頭文件:
#include <unistd.h>
定義函數(shù):
int truncate(const char * path, off_t length);
函數(shù)說明:truncate()會(huì)將參數(shù)path 指定的文件大小改為參數(shù)length 指定的大小. 如果原來的文件大小比參數(shù)length 大, 則超過的部分會(huì)被刪去.
返回值:執(zhí)行成功則返回0, 失敗返回-1, 錯(cuò)誤原因存于errno.
錯(cuò)誤代碼:
1、EACCESS 參數(shù)path 所指定的文件無法存取。
2、EROFS 欲寫入的文件存在于只讀文件系統(tǒng)內(nèi)。
3、EFAULT 參數(shù)path 指針超出可存取內(nèi)存空間。
4、EINVAL 參數(shù)path 包含不合法字符。
5、ENAMETOOLONG 參數(shù)path 太長。
6、ENOTDIR 參數(shù)path 路徑并非一目錄。
7、EISDIR 參數(shù)path 指向一目錄。
8、ETXTBUSY 參數(shù)path 所指的文件為共享程序, 而且正被執(zhí)行中。
9、ELOOP 參數(shù)path 有過多符號(hào)連接問題。
10、EIO I/O 存取錯(cuò)誤。
C語言ftruncate()函數(shù):改變文件大小
頭文件:
#include <unistd.h>
定義函數(shù):
int ftruncate(int fd, off_t length);
函數(shù)說明:ftruncate()會(huì)將參數(shù)fd 指定的文件大小改為參數(shù)length 指定的大小。參數(shù)fd 為已打開的文件描述詞,而且必須是以寫入模式打開的文件。如果原來的文件大小比參數(shù)length 大,則超過的部分會(huì)被刪去。
返回值:執(zhí)行成功則返回0, 失敗返回-1, 錯(cuò)誤原因存于errno.
錯(cuò)誤代碼:
1、EBADF 參數(shù)fd 文件描述詞為無效的或該文件已關(guān)閉。
2、EINVAL 參數(shù)fd 為一socket 并非文件, 或是該文件并非以寫入模式打開。
相關(guān)文章
DSP中浮點(diǎn)轉(zhuǎn)定點(diǎn)運(yùn)算--定點(diǎn)數(shù)的加減乘除運(yùn)算
本文主要介紹DSP中定點(diǎn)數(shù)的加減乘除運(yùn)算,很值得學(xué)習(xí)一下,需要的朋友可以參考一下。2016-06-06
詳解C++的靜態(tài)內(nèi)存分配與動(dòng)態(tài)內(nèi)存分配
內(nèi)存分配 (Memory Allocation) 是指為計(jì)算機(jī)程序或服務(wù)分配物理內(nèi)存空間或虛擬內(nèi)存空間的一個(gè)過程,本文主要介紹了C++的靜態(tài)內(nèi)存分配與動(dòng)態(tài)內(nèi)存分配,感興趣的同學(xué)可以參考閱讀2023-06-06

