文件到文件的复制
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;}“`
新闻热点
疑难解答