oprn/read/write/close系統函數

來源:互聯網
上載者:User

    open系列是 POSIX 定義的,是UNIX系統裡的system call,只能用在 POSIX 的作業系統上。使用open系列函數需要"#include <fcntl.h>".

基於檔案描述符的輸入輸出函數:
   open:開啟一個檔案,並指定訪問該檔案的方式,調用成功後返回一個檔案描述符。
   creat:開啟一個檔案,如果該檔案不存在,則建立它,調用成功後返回一個檔案描述符。
   close:關閉檔案,進程對檔案所加的鎖全都被釋放。
   read:從檔案描述符對應的檔案中讀取資料,調用成功後返回讀出的位元組數。
   write:向檔案描述符對應的檔案中寫入資料,調用成功後返回寫入的位元組數。
   ftruncate:把檔案描述符對應的檔案縮短到指定的長度,調用成功後返回0。
   lseek:在檔案描述符對應的檔案裡把檔案指標設定到指定的位置,調用成功後返回新指標的位置。
   fsync:將所有已寫入檔案中的資料真正寫到磁碟或其他下層裝置上,調用成功後返回0。
   fstat:返迴文件描述符對應的檔案的相關資訊,把結果儲存在struct stat中,調用成功後返回0。
   fchown:改變與開啟檔案相關聯的所有者和所有組,調用成功後返回0。
   fchmod:把檔案描述符對應的檔案的許可權位改為指定的八進位模式,調用成功後返回0。
   flock:用於向檔案描述符對應的檔案施加建議性鎖,調用成功後返回0。
   fcntl:既能施加建議性鎖也能施加強制性鎖,能建立記錄鎖、讀取鎖和寫入鎖,調用成功後返回0。
   dup:複製檔案描述符,返回沒使用的檔案描述符中最小的編號。
   dup2:由使用者指定返回的檔案描述符的值,用來重新開啟或重新導向一個檔案描述符。
   select:同時從多個檔案描述符讀取資料或向多個檔案描述符寫入資料。
檔案描述符的優點:相容POSIX標準,許多系統調用都依賴於它。
檔案描述符的缺點:不能移植到UNIX以外的系統上去,也不直觀。

1)write

#include <unistd.h>

size_t write(int fildes,const void *buf,size_t nbytes);

參數說明:

    fildes:與檔案相對應的檔案描述符,可通過調用open函數擷取

    buf:存放將寫入檔案的資料,可以是字串,也可是其他資料。其中buf是指向字串的指標

    nbytes:需寫進檔案的位元組數

傳回值:

    -1:寫入失敗

    0:寫入0個位元組

    x:已寫入x個位元組

2)read

#include <unistd.h>

size_t read(int fildes,char *buf,size_t nbytes);

參數說明:

    fildes:檔案描述符

    buf:存放從檔案中讀取的資料

    nbytes:希望讀取的直接數

傳回值:

    -1:讀取失敗

    0:讀取0個位元組

    x:已讀取x個位元組

3)open

參數說明:

    path:檔案存放路徑;
    oflags:開啟檔案。取值如下:

    O_RDONLY:以唯讀方式開啟,O_WRONLY:以唯寫方式開啟,O_RDWR:以讀寫方式開啟

    oflages參數中還包括下列可選模式的組合(用按位或操作)

    O_APPEND:把寫入資料追加在檔案的末尾

    O_TRUNC:把檔案長度設為0,丟棄已有的內容

    O_CREAT:如果需要,就按參數mode中給出的訪問模式建立檔案

    O_EXCL:已O_CREAT一起使用,確保調用者建立出檔案

4)close
#include <unistd.h>

int close(int fildes);

參數:

fildes:檔案描述符

返回:

success:0

fail:-1

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.