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

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

C語(yǔ)言實(shí)現(xiàn)Linux cp命令

2019-11-11 06:19:04
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

1.分析所需功能

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

2. 功能函數(shù)的實(shí)現(xiàn)

文件到文件的復(fù)制

copyF2F(char * src, char *dst){ int in_fd, out_fd, n_chars; char buf[BUFFERSIZE]; /*如果目標(biāo)文件是一個(gè)目錄,那么默認(rèn)是在該目錄下建立一個(gè)與源文件同名的文件*/ if (isdir(dest_file)) { char c; char temp[10] = { '/0' }; char *r_temp; int n = strlen(src_file); int m = 0; /*讀取源文件的最后一級(jí)文件名作為目標(biāo)文件名*/ 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.目錄到目錄的復(fù)制 “` 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函數(shù)打開src_dir目錄,獲得指向該目錄名字的指針*/if ((dp = opendir(src_dir)) == NULL) return 1;else{ /*使用readdir函數(shù)讀取dp所指代目錄的目錄項(xiàng),獲得指向下一個(gè)dirent結(jié)構(gòu)的指針*/ while ((dirp = readdir(dp))) { struct stat file_stat; if (!isdir(dirp->d_name)) { /*將dirent結(jié)構(gòu)中的d_name成員變量鏈接到上級(jí)目錄字符串*/ strcat(tempDest, dirp->d_name); strcat(tempSrc, dirp->d_name); /*此處轉(zhuǎn)換為文件復(fù)制函數(shù)的方式處理目錄復(fù)制*/ copyF2F(tempSrc, tempDest); /*通過字符串拷貝函數(shù),將tempDest和tempSrc還原為上級(jí)的目錄名*/ strcpy(tempDest, dest_dir); strcpy(tempSrc, src_dir); } } /*關(guān)閉目錄*/ closedir(dp); return 0;}

“`


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 达尔| 巩义市| 榕江县| 星座| 炎陵县| 肇源县| 海宁市| 始兴县| 大冶市| 宜君县| 泽州县| 会东县| 贵德县| 朝阳县| 土默特右旗| 阳泉市| 宜城市| 全南县| 厦门市| 五常市| 北宁市| 青海省| 宜阳县| 乌审旗| 揭西县| 常宁市| 阿图什市| 汉沽区| 乐昌市| 叙永县| 寻甸| 丹阳市| 阳信县| 那坡县| 平果县| 平邑县| 新沂市| 台江县| 霸州市| 中江县| 平安县|