**:
實現功能:
$./cp ~/filename ~/othername //檔案到檔案的拷貝
$./cp ~/directory/filename . //檔案到當前目錄的拷貝
$./cp ~/directory/filename ~/directory/ //檔案到目錄的拷貝
#include #include #include #include #include #include #include #include #define buf_size 1024
#define path_len 128
void my_err(char *err_string, int line )
void copy_data(const int frd,const int fwd)
else if (read_len > 0)
else if (write_len > 0)
else if(-1 == write_len)
}if (-1 == write_len) break;}}
}int main(int argc, char **argv)
frd = open(argv[1],o_rdonly);
if (frd == -1)
if (fstat(frd,&src_st) == -1)
/*檢查原始檔路徑是否是目錄*/
if (s_isdir(src_st.st_mode))
pdes = argv[2];
stat(argv[2],&des_st);
if (s_isdir(des_st.st_mode))
psrc++;//指向源檔名
len = strlen(argv[2]);
// . 表示複製到當前工作目錄
if (1 == len && '.' == *(argv[2]))
else
strcpy(pdes,argv[2]);
if ( *(pdes+(len-1)) != '/' )
strcat(pdes+len,psrc);}}
/* 開啟目標檔案, 使許可權與原始檔相同*/
fwd = open(pdes,o_wronly | o_creat | o_trunc,src_st.st_mode);
if (fwd == -1)
copy_data(frd,fwd);
//puts("end of copy");
if (len > 0 && pdes != null)
free(pdes);
close(frd);
close(fwd);
return 0;
}
實現自己的cp命令
1 綜述 在unix和linux系統裡,cp是經常使用的乙個命令,用於複製檔案,用法如下 cp src file dest file 以下就使用若干系統呼叫來實現自己的cp。2 原理 open 開啟乙個檔案 close 關閉檔案 read 從檔案中讀取資料到緩衝區 write 將資料從緩衝區寫入檔案...
Linux命令 cp命令
cp命令用來複製檔案或者目錄,是linux系統中最常用的命令之一。1,語法 cp options source dest 或者cp options source.directory 2,引數說明 f 覆蓋已經存在的目標檔案而不給出提示。i 與 f選項相反,在覆蓋目標檔案之前給出提示,要求使用者確認是...
自己編寫的linux ls命令
include include include include include include include include include include int aflag 0 int lflag 0 typedef char datatype typedef struct node link...