簡要對(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)文章
c++ 讓程序開機(jī)自動(dòng)啟動(dòng)的方法
這篇文章主要介紹了c++ 讓程序開機(jī)自動(dòng)啟動(dòng)的方法,需要的朋友可以參考下2017-09-09C++實(shí)現(xiàn)LeetCode(146.近最少使用頁面置換緩存器)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(146.近最少使用頁面置換緩存器),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07C語言使用結(jié)構(gòu)體實(shí)現(xiàn)簡單通訊錄
這篇文章主要為大家詳細(xì)介紹了C語言使用結(jié)構(gòu)體實(shí)現(xiàn)簡單通訊錄,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02解析如何在C語言中調(diào)用shell命令的實(shí)現(xiàn)方法
本篇文章是對(duì)如何在C語言中調(diào)用shell命令的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05VTK8.1?在?Qt5.9?環(huán)境下的配置編譯和安裝過程
為了實(shí)現(xiàn)realsense的PCL點(diǎn)云顯示,需要VTK支持。由于整個(gè)平臺(tái)在Qt環(huán)境實(shí)現(xiàn),VTK編譯為Qt插件。整個(gè)過程并不復(fù)雜,網(wǎng)上的文章大多不全,自己梳理了一下,分享出來,需要的朋友可以參考下2022-07-07