最近苦讀《unix系統程式設計》便寫了一些例項,逐步增加自己unix程式設計的能力。
首先來實現乙個unix下常用命令:cp
先看**:
#include
#include
#include #define bufsize 512
#define perm0755
/* copy file function */
int copyfile(const char *name1, const char *name2)
/* 迴圈的把原始檔寫入目標檔案 */
while ((nread = read(infile, buffer, bufsize)) > 0)
}/* 關閉資源 */
close(infile);
close(outfile);
if (nread == -1)
return (-4);
else
return (0);
}main(int argc, char *argv)
char *file1, *file2;
file1 = argv[1];
file2 = argv[2];
int retcode;
/* 進行複製 */
retcode = copyfile(file1, file2);
/* 錯誤資訊控制 */
if (retcode == -1)
if (retcode == -2)
if (retcode == -3)
if (retcode == -4)
if (retcode == 0)
}儲存為copyfile.c,然後使用gcc來編譯:gcc -o copyfile copyfile.c
使用命令的格式是:copyfile
能夠複製任何檔案,不管是asc還是二進位制的。其實根本原理就是呼叫了三個unix下的系統呼叫:open, read, write,完成基本的io操作,既然不複雜,我就不解釋了。
本**再freebsd5.3下編譯通過。
author: heiyeluren
date: 2005-08-02
Unix程式設計 實現cp命令
最近苦讀 unix系統程式設計 便寫了一些例項,逐步增加自己unix程式設計的能力。首先來實現乙個unix下常用命令 cp 先看 include include include define bufsize 512 define perm 0755 copy file function int co...
實現linux的cp命令
主要運用open 開啟檔案,運用read 讀出檔案的內容到緩衝區,write 將緩衝區的內容寫入新的檔案,來模擬實現linux命令的cp功能。注意可以通過使用lseek 函式來獲取檔案的大小。c語言實現linux cp命令 include open 所需標頭檔案 include lseek 所需標頭...
實現自己的cp命令
1 綜述 在unix和linux系統裡,cp是經常使用的乙個命令,用於複製檔案,用法如下 cp src file dest file 以下就使用若干系統呼叫來實現自己的cp。2 原理 open 開啟乙個檔案 close 關閉檔案 read 從檔案中讀取資料到緩衝區 write 將資料從緩衝區寫入檔案...