Linux POSIX檔案I O程式設計

2021-10-05 22:37:26 字數 2057 閱讀 5707

1.建立/開啟/關閉檔案

#include

#include

#include

intopen

(const

char

*pathname,

int flags)

;int

open

(const

char

*pathname,

int flags,mode_t mode)

;int

creat

(const

char

*pathname,mode_t mode)

;

mode:

s_irwxu:00700,允許檔案的所有人讀、寫和執行檔案

s_irusr(s_iread):00400,允許檔案的所有人讀檔案

s_iwusr(s_iwrite):00200,允許檔案的所有人寫檔案

s_ixusr(s_iexec):00100,允許檔案的所有人執行檔案

s_irwxg:00070,檔案所在分組讀寫執行檔案

s_irgrp:00040,檔案所在分組讀檔案

s_iwgrp:00020,檔案所在分組寫檔案

s_ixgrp:00010,檔案所在分組執行檔案

s_irwxo:00007,其他使用者讀寫執行檔案

s_iroth:00004,其他使用者讀檔案

s_iwoth:00002,其他使用者寫檔案

s_ixoth:00002,其他使用者執行檔案

出錯**省略

②close()函式

#include

intclose

(int fd)

;

當關閉檔案成功時返回0,錯誤返回-1.

2.讀寫檔案內容

#include

ssize_t write

(int fd,

const

void

*buf,size_t count)

;ssize_t read

(int fd,

const

void

*buf,size_t count)

;

read()和write()是不帶緩衝的,fd是檔案描述符,buf是寫入資料緩衝開始位址,count是寫入多少位元組資料。成功返回0,失敗返回-1,設定errno為處做**。

3.檔案內容定位

#include

#include

off_t lseek

(int fildes,off_t offset,

int whence)

;

offset是檔案偏移量,whence有三種設定:①seek_set:從檔案開始處設定偏移量;②seek_cur:從前位置設定偏移量;③seek_end:從檔案尾處設定檔案偏移量。

4.修改已開啟檔案的屬性

#include

#include

intfcntl

(int fd,

int cmd)

;int

fcntl

(int fd,

int cmd,

long arg)

;int

fcntl

(int fd,

int cmd,

struct flock *lock)

;

cmd功能:

①f_dupfd:複製現有的描述符;

②f_getfd或f_setfd:獲取/設定檔案描述符標記;

③f_getfl或f_setfl:獲取/設定檔案狀態標記;

④f_getown或f_setown:獲取/設定非同步i/o所有權;

⑤f_getlk或f_setlk或f_setlkw:獲取/設定記錄鎖;

成功的秘訣往往很簡單,答案就是hold on.

系統io(檔案io)

檔案描述符 檔案描述符 已開啟檔案的標誌,是非負整形數,當前可以最小作為新檔案的檔案描述符,預設範圍0 1024 可更改 檔案開啟 int open const char pathname,int flags,mode t mode 1.pathname 要開啟檔案的路徑 2.flags 開啟方式 ...

IO操作 檔案IO

一 系統呼叫 系統呼叫實際上是作業系統 核心 提供的供使用者使用的介面函式。二 標準io函式和檔案io函式的關係 標準io是c庫內定義的函式,是凌駕於系統之上的,適用於任何的作業系統 檔案io是由linux系統提供的,只能在linux系統中使用,而不可以在其它作業系統中使用。標準io函式可以呼叫檔案...

source檔案和makefile檔案編寫

一.makefile 沒有副檔名,它名字就叫makefile 內容如下 include ntmakeenv makefile.def wdm程式使用的所有makefile都這樣寫,我們只需寫乙個,編譯時把它拷貝到工作目錄下就行了 二.sources檔案就需要我們根據不同的場合修改了,不過基本模板如下...