linux程式設計複習1 檔案與IO 1

2021-10-06 09:46:40 字數 3518 閱讀 7927

1,實現檔案拷貝複習檔案的開啟

2, 關於lseek

3,實現最簡單的乙個ls

4,stat結構體及簡單示例

的**簡單實現與整理:

1 #include

2 #include

3 #include

4 #include

5 #include

6 #include

7 #include

8 #include

910 #define err_exit

(m)\

11do\

12while(0

)1617int

main

(int argc,

char

*ar**)

1826 infd =

open

(ar**[1]

,o_rdonly);27

if(infd ==-1

)28err_exit

("open src error");

29if

((outfd =

open

(ar**[2]

, o_wronly | o_creat | o_trunc,

0644))

==-1)

31err_exit

("open dest error");

32int nread;

33char buf[

1024];

34while

(nread =

(read

(infd, buf,

1024))

>0)

35write

(outfd, buf, nread);36

close

(infd);37

close

(outfd);38

39return0;

40}

實現拷貝:讀取infd所指向的內容,寫入到outfd所指向的內容

首先設定檔案的讀寫模式:將第乙個檔案的內容設定唯讀模式,第二個檔案設定只寫模式,如果原來存在要截0不存在就644建立

再將檔案讀寫與緩衝區配合互動即可

實現?

lseek返回例子?

//...

intmain

(void)18

;24int ret =

read

(fd, buf,5)

;25if(ret ==-1

)26err_exit

("read error");

2728 ret =

lseek

(fd,0,

seek_cur);

29if

(ret ==-1

)30err_exit

("lseek error");

31printf

("current offset = %d\n_"

, ret);32

33return

0;

返回結果?檔案偏移量,test檔案內容是abcde,下標索引從0開始,現在的檔案讀寫指標就到e後面了

開啟乙個目錄l:dir* opendir(char *pathname);返回乙個dir指標

訪問指定目錄中下乙個連線的細節struct dirent* readdir(dir* dirptr);

目錄結構體資訊

實現?

18

intmain

(int argc,

char

*ar**)

1928

closedir

(dir);29

exit

(exit_success);30

return0;

31-- insert --

結果?將當前資料夾所有檔案都顯示出來了

stat功能:讀取檔案元資料

//233就這麼個意思,懶得除錯系列

**lstat:**獲取鏈結檔案的資訊,無穿透能力

Linux系統程式設計8 檔案I O

fcntl.h 標頭檔案,file control的縮寫。open函式,openat函式 int open const char path,int oflag int openat int fd,const char path,int oflag 將準備開啟的檔案或是裝置的名字作為引數path傳給函...

UNIX程式設計 3 檔案IO

1.open函式 include int open const char pathname,int oflag,mode t mode oflag引數 o rdonly 唯讀開啟 o wronly 只寫開啟 o rdwr 讀寫開啟 這三個必須指定乙個 下面是可選的 o creat 若此檔案不存在,則...

《APUE》筆記(1) 檔案I O

1 概述 1 unix類作業系統最重要的兩個東東 程序和檔案 2 大多數檔案i o用到的5個函式 open,close,read,write,lseek.還有檔案屬性操作函式 dup,fcntl 3 unix類作業系統的檔案i o是不帶快取的i o unbuffered i o 2 檔案描述符 fi...