扼要比較C說話中的truncate()函數與ftruncate()函數。本站提示廣大學習愛好者:(扼要比較C說話中的truncate()函數與ftruncate()函數)文章只能為提供參考,不一定能成為您想要的結果。以下是扼要比較C說話中的truncate()函數與ftruncate()函數正文
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 並不是文件, 或是該文件並不是以寫入形式翻開。