open相關函式練習 實現cp 功能

2021-10-22 18:20:41 字數 1320 閱讀 8887

open:

作用:開啟和建立檔案;

#include

int open(constcharpathname,intflags);

int open(constcharpathname,intflags,mode_t mode);

返回值:成功則返回檔案描述符,否則返回-1

o_rdonly唯讀模式

o_wronly只寫模式

o_rdwr讀寫模式

read:

函式定義

ssize_t read [1] (int fd, void *buf, size_t count);

成功返回讀取的位元組數,出錯返回-1並設定errno,如果在調read之前已到達檔案末尾,則這次read返回0。

引數count是請求讀取的位元組數,讀上來的資料儲存在緩衝區buf中,同時檔案的當前讀寫位置向後移

write:

write函式把buf中nbyte寫入檔案描述符handle所指的文件,成功時返回寫的位元組數,錯誤時返回-1.

:ssize_t write(int fd, const void *buf, size_t nbyte);

fd:檔案描述符;

buf:指定的緩衝區,即指標,指向一段記憶體單元;

nbyte:要寫入檔案指定的位元組數;

返回值:寫入文件的位元組數(成功);-1(出錯)

#include

"head.h"

intmain

(int argc,

char

**ar**)if(

(fd2 =

open

(ar**[2]

, o_creat| o_rdwr,

0666))

<0)

while(1

);ssize_t size =

read

(fd, buff,

sizeof

(buff));

//實現讀入;

printf

("%s"

, buff)

;// 將讀入的內容列印;

write

(fd2, buff, size)

;// 將讀入的內容再寫入檔案2;

if(size <=0)

}close

(fd)

;close

(fd2)

;// 關閉檔案1和2;

perror

("open2");

return0;

}

8 26函式相關練習

1.concat 例 select concat no why from dual 註解 個人理解以下註解同下 其實就是將兩個字元拼接 於是我試了以下 例 select concat yes or no from dual 註解 報錯了 說明只能拼接倆個字元 2.substr substr 被擷取字...

利用read write函式實現copy功能

ssize t read int fd,void buf,size t count 引數 fd 檔案描述符 buf 存資料的緩衝區 count 緩衝區的大小 返回值 0 讀到檔案末尾 成功 0 實際從fd讀到的資料大小 失敗 1,並設定errno 將檔案設定為非阻塞,當read沒有資料時返回 1 且...

函式 內建函式 匿名函式 相關練習

4,用map來處理字串列表,把列表中所有人都變成sb,比方alex sb name oldboy alex wusir print list map lambda a a sb name 5.用map來處理下述l,然後用list得到乙個新的列表,列表中每個人的名字都是sb結尾 l print lis...