国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C語言實現Linux cp命令

2019-11-14 08:59:08
字體:
來源:轉載
供稿:網友

1.分析所需功能

文件到文件(參數:兩個文件名) 1.文件到文件的復制 2.文件到文件的硬鏈接(-l) 3.文件到文件的軟鏈接(-s)文件到目錄(參數:一個文件名,一個目錄名) 1.文件到目錄的復制 2.新目錄下建立文件硬鏈接(-l) 3.新目錄下建立文件軟鏈接(-s)目錄到目錄 1.目錄的遞歸復制(-r)

2. 功能函數的實現

文件到文件的復制

copyF2F(char * src, char *dst){ int in_fd, out_fd, n_chars; char buf[BUFFERSIZE]; /*如果目標文件是一個目錄,那么默認是在該目錄下建立一個與源文件同名的文件*/ if (isdir(dest_file)) { char c; char temp[10] = { '/0' }; char *r_temp; int n = strlen(src_file); int m = 0; /*讀取源文件的最后一級文件名作為目標文件名*/ while ((c = src_file[n - 1]) != '/') { temp[m] = c; m++; n--; } r_temp = strrev(temp); strcat(dest_file, r_temp); }}為文件建立硬鏈接 link(src, dst) 為文件建立軟鏈接smlink(src, dst)

4.目錄到目錄的復制 “` int copyD2D(char *src_dir, char *dest_dir) { DIR *dp = NULL; struct dirent *dirp; char tempDest[256]; char tempSrc[256]; strcpy(tempDest, dest_dir); strcpy(tempSrc, src_dir);

/*使用opendir函數打開src_dir目錄,獲得指向該目錄名字的指針*/if ((dp = opendir(src_dir)) == NULL) return 1;else{ /*使用readdir函數讀取dp所指代目錄的目錄項,獲得指向下一個dirent結構的指針*/ while ((dirp = readdir(dp))) { struct stat file_stat; if (!isdir(dirp->d_name)) { /*將dirent結構中的d_name成員變量鏈接到上級目錄字符串*/ strcat(tempDest, dirp->d_name); strcat(tempSrc, dirp->d_name); /*此處轉換為文件復制函數的方式處理目錄復制*/ copyF2F(tempSrc, tempDest); /*通過字符串拷貝函數,將tempDest和tempSrc還原為上級的目錄名*/ strcpy(tempDest, dest_dir); strcpy(tempSrc, src_dir); } } /*關閉目錄*/ closedir(dp); return 0;}

“`


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 海安县| 洱源县| 兴宁市| 武强县| 疏勒县| 太谷县| 施秉县| 永吉县| 镇江市| 普兰店市| 金堂县| 金昌市| 马公市| 合肥市| 额济纳旗| 本溪市| 西贡区| 镇雄县| 盱眙县| 古蔺县| 寿阳县| 青浦区| 凤山市| 商水县| 色达县| 庆阳市| 呼伦贝尔市| 鸡东县| 莱阳市| 肇州县| 巧家县| 钟祥市| 台山市| 宝山区| 抚松县| 武胜县| 木兰县| 博兴县| 贵州省| 邛崃市| 古丈县|