C語言truncate()函數:改變文件大小
頭文件:
#include <unistd.h>
定義函數:
int truncate(const char * path, off_t length);
函數說明:truncate()會將參數path 指定的文件大小改為參數length 指定的大小. 如果原來的文件大小比參數length 大, 則超過的部分會被刪去.
返回值:執行成功則返回0, 失敗返回-1, 錯誤原因存于errno.
錯誤代碼:
1、EACCESS 參數path 所指定的文件無法存取。
2、EROFS 欲寫入的文件存在于只讀文件系統內。
3、EFAULT 參數path 指針超出可存取內存空間。
4、EINVAL 參數path 包含不合法字符。
5、ENAMETOOLONG 參數path 太長。
6、ENOTDIR 參數path 路徑并非一目錄。
7、EISDIR 參數path 指向一目錄。
8、ETXTBUSY 參數path 所指的文件為共享程序, 而且正被執行中。
9、ELOOP 參數path 有過多符號連接問題。
10、EIO I/O 存取錯誤。
C語言ftruncate()函數:改變文件大小
頭文件:
#include <unistd.h>
定義函數:
int ftruncate(int fd, off_t length);
函數說明:ftruncate()會將參數fd 指定的文件大小改為參數length 指定的大小。參數fd 為已打開的文件描述詞,而且必須是以寫入模式打開的文件。如果原來的文件大小比參數length 大,則超過的部分會被刪去。
返回值:執行成功則返回0, 失敗返回-1, 錯誤原因存于errno.
錯誤代碼:
1、EBADF 參數fd 文件描述詞為無效的或該文件已關閉。
2、EINVAL 參數fd 為一socket 并非文件, 或是該文件并非以寫入模式打開。
新聞熱點
疑難解答
圖片精選