1)我們得開啟原始檔
2)將原始檔讀入到我們設定的引數上,如readbuf
3) 開啟目的檔案
4)將原始檔讀取的內容readbuf寫入到目的檔案
5)關閉原始檔和目的檔案
main 函式中我們需要設定引數,來傳入我們複製的原始檔和目的檔案
int
main
(int argc,
char
**ar**)
例如我們編譯完以後,可以敲入命令**./a.out demo1.c demo2.c**
其中./a,out 是執行程式,demo1.c是原始檔,就是我們要複製的檔案,demo2.c是我們要複製內容到的目的檔案,類似於cp demo1.c demo2.c
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include 89
intmain
(int argc,
char
**ar**)
1019 fdsrc =
open
(ar**[1]
,o_rdwr);20
int size =
lseek
(fdsrc,0,
seek_end);
21 lseek (fdsrc,0,
seek_set);
22 readbuf =
(char*)
malloc
(sizeof
(char*)
*size+8)
;23int n_read =
read
(fdsrc,readbuf,size)
;24 fddes =
open
(ar**[2]
,o_rdwr|o_creat|o_trunc,
0600);
25int n_write =
write
(fddes,readbuf,size);26
close
(fdsrc);27
close
(fddes);28
return0;
29}~~
其中要注意的是,我們計算多少個位元組用了游標的移動,移動到了最後,要重新將游標回到開頭,才能正確的將內容複製。
int size =
lseek
(fdsrc,0,
seek_end);
lseek (fdsrc,0,
seek_set
)
還有我們開啟目的檔案時候,判斷是否存在這個檔案,不存在要建立檔案,存在的話要將原檔案的東西全覆蓋,要加入o_trunc這條指令,不然在原始檔位元組比較少的時候,會存在原始檔的內容輸入進去了,但是內容後面還是會儲存該檔案原本的內容。
fddes =
open
(ar**[2]
,o_rdwr|o_creat|o_trunc,
0600
);
就是這條指令裡要新增。
完畢!
程式設計工具 如何管理自己的程式設計環境
unix下有很多經典的工具,編輯器有vim emacs等,shell有bash zsh等,版本控制有git,終端復用工具有tmux 這些工具有個普遍的特徵,那就是高度的可配置性,可以根據自己的喜好以及習慣進行不同的配置,就拿vim來說,我周圍使用vim的人都將vim配置的各不相同,可以說十個人就有十...
Hadoop裡如何Mysql程式設計
mysql資料庫讀寫 hadoop技術推出一度曾遭到關聯式資料庫研究者的挑釁和批評,認為mapreduce不具有關聯式資料庫中的結構化資料儲存和處理能力。為此,hadoop社群和研究人員做了多的努力,在hadoop0.19版支援mapreduce訪問關聯式資料庫,如 mysql mongodb po...
如何提高自己的程式設計水平
不知不覺做軟體已經做了十年,有成功的喜悅,也有失敗的痛苦,但總不敢稱自己是高手,因為和我心目中真正的高手們比起來,還差的太遠。世界上並沒有成為高手的捷徑,但一些基本原則是可以遵循的。1.紮實的基礎。資料結構 離散數學 編譯原理,這些是所有電腦科學的基礎,如果不掌握他們,很難寫出高水平的程式。據我的觀...