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

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

C語言實現Linux cp命令

2019-11-11 07:29:34
字體:
來源:轉載
供稿:網友

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;}

“`


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 晋中市| 公安县| 汾西县| 贡山| 措美县| 长顺县| 盱眙县| 洛南县| 象山县| 达州市| 民勤县| 土默特左旗| 太湖县| 永泰县| 广饶县| 巩义市| 新乡市| 呼图壁县| 张家川| 宜兰市| 新绛县| 昌宁县| 沂南县| 佛学| 尼木县| 开封县| 长阳| 湄潭县| 怀柔区| 屯留县| 芦溪县| 扶风县| 黑龙江省| 凤庆县| 武鸣县| 水富县| 抚顺市| 阿图什市| 枣庄市| 林周县| 侯马市|