linux 文件截取


  相關函數:open, ftruncate

  表頭文件:#include <unistd.h>

  定義函數:int truncate(const char *path, off_t length);

        truncate("/aaa",500);

  函數說明:truncate()會將參數path指定的文件大小改為參數length指定的大小。 如果原來的文件大小比參數length大,則超過的部分會被刪除

  返回值:執行成功則返回0, 失敗返回-1, 錯誤原因存於errno

  錯誤代碼:EACCESS 參數path所指定的文件無法存取

  EROFS 欲寫入的文件存在於只讀文件系統內

  EFAULT 參數path指針超出可存取空間

  EINVAL 參數path包含不合法字符

  ENAMETOOLONG 參數path太長

  ENOTDIR 參數path路徑並非一目錄

  EISDIR 參數path指向一目錄

  ETXTBUSY 參數path所指的文件為共享程序,而且正被執行中

  ELOOP 參數path有過多符號連接問題

  EIO I/O存取錯誤

-----------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------

  ftruncate(改變文件大小)

  相關函數 open,truncate

  表頭文件 #include<unistd.h>

  定義函數 int ftruncate(int fd,off_t length);

        ----------------------------------------------------------------------------

        out=open("/aaaa",O_RDWR|O_CREAT,S_IRUSR);
        ftruncate(out,500);
        close(out);

        ----------------------------------------------------------------------------

  函數說明

  ftruncate()會將參數fd指定的文件大小改為參數length指定的大小。

  參數fd為已打開的文件描述詞,而且必須是以寫入模式打開的文件。

  如果原來的文件大小比參數length大,則超過的部分會被刪去。

  返回值

  執行成功則返回0,失敗返回-1,錯誤原因存於errno。

  錯誤代碼

  EBADF 參數fd文件描述詞為無效的或該文件已關閉。

  EINVAL 參數fd 為一socket 並非文件,或是該文件並非以寫入模式打開。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM