Linux的文件函數

1.creat:
(1)函數的作用:建立,創建新文件。
(2)函數的原型:int creat (const char * pathname,mode_t mode)
(3)函數的參數:pathname:要建立的文件路徑字符串。如:“/home/hello.c”。
mode:建立文件的權限。
(4)函數的返回值:成功返回文件描述符,出錯返回-1。
文件描述符是一個非負的整數,它是一個索引值,並指向在內核中每個進程打開文件的記錄表。
(5)頭文件: #include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

2.open:
(1)函數的作用:打開或創建新文件。
(2)函數的原型:int open (const char * pathname,int flags) /如果文件存在,僅打開/
int open (const char * pathname,int flags,mode_t mode) /如果文件不存在,需要新建文件/
(3)函數的參數:pathname:要建立的文件路徑字符串。
mode:建立文件的權限。(當創建新文件時才使用)
flags:使用的標準
O_RDONLY : 只讀
O_WRONLY : 只寫
O_RDWR : 讀寫
O_CREAT :打開文件不存在時,創建新文件。
O_EXCL :創建時新文件時檢查文件是否存在,如果不存在則創建,如果有則出錯。
O_TRNUC :若文件存在,並且是隻寫的形式打開,將文件清0。
O_APPEND :在文件尾繼續寫數據,不將文件清空。
O_NONBLOCK:以不可阻斷的形式打開,非阻塞。
(4)函數的返回值:成功返回文件描述符,出錯返回-1。
(5)頭文件:#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

3.read:
(1)函數的作用:從打開的文件中讀取數據。
(2)函數的原型:ssize_t read (int fd, void * buf, size_t count)
(3)函數的參數:fd:open返回的文件描述符。
buf:放置讀出來數據緩衝區。
count:要讀取的字節數。
(4)函數的返回值:實際讀到的字節數
0:讀到文件尾或者無數據可讀
-1:出錯
(5)頭文件:#include <unistd.h>
4.write:
(1)函數的作用:將數據寫入到已經打開的文件內。
(2)函數的原型:ssize_t write (int fd, const void * buf, size_t count)
(3)函數的參數:fd:open返回的文件描述符。
buf:放置要寫入文件的數據緩衝區。
count:寫的字節數。
(4)函數的返回值:實際寫入的字節數

  • 0:寫滿或寫到文件尾
  • ‘>0,<要寫字節數:實際寫入的字節數。’

  • 寫多少,都寫入
    5.lseek:
    (1)函數的作用:移動或者定位文件的讀寫位置。
    (2)函數的原型:off_t lseek (int fd, off_t offset, int wheece)
    (3)函數的參數:fd:open返回的文件描述符。
    wheece:文件的指針位置(當前,結尾,開頭)
    SEEK_SET:文件頭
    SEEK_CUR 文件當前位置
    SEEK_END 文件尾
    offset:偏移量,向前移動是負數,向後是整數
    (4)函數的返回值:文件指針到頭文件的字節數
    len = lseek (fd, 0, SEEK_END) 求文件內容大小。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章