編寫程式實現簡單的cp功能

2021-10-08 10:04:40 字數 1899 閱讀 7543

有乙個檔案 test.txt,複製之後的檔名為 test.cp;

需要主函式傳參,引數不夠,關閉程序;

開啟檔案;

需要乙個 buf,長度(buf_size,定義乙個巨集)隨意,每次迴圈從 test.txt讀取buf_size長度的內容,寫入到 test.cp;

開啟、讀取、寫入一旦異常(返回值為 -1),關閉程序;

關閉檔案;

#include

#include

#include

#include

#define buf_size 1024

intmain

(int argc,

char

*ar**)

int fd1, fd2, rr, wr;

char

*buf[

1024];

// read only

fd1 =

open

(ar**[1]

, o_rdonly);if

(fd1 ==-1

) fd2 =

open

(ar**[2]

, o_rdwr | o_creat | o_trunc,

0664);

if(fd2 ==-1

)while

(rr =

read

(fd1, buf, buf_size)

) wr =

write

(fd2, buf, buf_size);if

(wr ==-1

)}close

(fd1)

;close

(fd2)

;return0;

}

注:exit在stdlib.h裡面包含;

# get the .c files

src =

$(wildcard *.c)

# target that we need

obj =

$(patsubst %.c, %, $(src)

)# warn

wrning = -wall -g

# target

all:$(obj)

# rules

%:%.c

gcc $< -o $@

# fake file

.phony:clean

# clean

clean:

-rm -rf $(obj)

使用指令
luxurylu@luxurylu-virtual-machine:

~/pointer22/

0722$ ls

luxurylu@luxurylu-virtual-machine:

~/pointer22/

0722$ make

luxurylu@luxurylu-virtual-machine:

~/pointer22/

0722$ .

/mycp test.txt test.cp

luxurylu@luxurylu-virtual-machine:

~/pointer22/

0722$ cat test.txt

luxurylu@luxurylu-virtual-machine:

~/pointer22/

0722$ cat test.cp

執行截圖

編寫程式的步驟

編寫程式至少需要三個步驟 步驟一 確定ipo 理解ipo模式 i input 輸入,程式的輸入 包括檔案輸入 網路輸入 使用者手工輸入 隨機資料輸入 程式內部引數輸入等 輸入是乙個程式的開始 p process 處理,程式的主要邏輯 程式對輸入進行處理輸出產生結果 處理的方法也叫演算法,是程式最重要...

matalb編寫程式實現ps的「素描濾鏡」

ps的各種濾鏡都可以用matlab 來進行實現,今天給出乙個例子 素描濾鏡 原圖如圖 實驗步驟如下 1.首先原圖就是灰度圖,我們不需要進行去色處理,直接讀取 即可,並對影象的灰度級歸一化到 0 255 2.對原圖進行反色得到影象b。3.對影象b進行高斯模糊得到圖c。4.最後將影象c與影象b進行顏色減...

編寫程式練習List的基本使用

4 編寫程式練習list的基本使用 建立乙個只能容納string物件的名為names的list集合 按順序向集合中新增5個字串物件 john tom kim rose sally 對集合進行遍歷,分別列印集合中每個元素的位置和內容 首先列印集合的大小,然後刪除集合中的第3個元素 獲取第3個元素的內容...