linux自己編寫的 cp 命令

2021-06-11 12:56:00 字數 1379 閱讀 3680

**:

實現功能:

$./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...