linux下用简单c语言代码怎么实现实现文件夹所有内容的复制

我是linux初学者,正在学习文件IO操作,求一段C代码研习,目的是复制文件内的所有文件到另一个文件夹中,如复制/root/kk目录下的所有文件到/root/kk1中,谢... 我是linux初学者,正在学习文件IO操作,求一段C代码研习,目的是复制文件内的所有文件到另一个文件夹中,如复制/root/kk目录下的所有文件到/root/kk1中,谢谢。
要完整的程序代码,谢谢
展开
 我来答
小志8554
推荐于2017-10-04 · TA获得超过1058个赞
知道小有建树答主
回答量:1198
采纳率:25%
帮助的人:297万
展开全部
#include <unistd.h>

int main(int argc, char const *argv[])
{
  system("cp -r 目标目录 目的目录");//把目标目录和目的目录改成实际目录即可
  return 0;
}

直接调用shell命令即可

功夫宅
2013-09-06 · TA获得超过468个赞
知道小有建树答主
回答量:273
采纳率:0%
帮助的人:154万
展开全部
先用fopen打开原文件(绝对路径)r模式,再打开创建的(绝对路径)w模式。
然后fscanf()读原文件数据保存到字符串中,然后在用fprintf写到新文件中
至于函数用法,自己百度
追问
给完整代码,追加50分
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2017-09-20
展开全部
#include <sys/stat.h>
#include <unistd.h>
// 目录
int isdir(char *path)
{
struct stat buf;
int cc;
cc=stat(path,&buf);
if(!cc && (buf.st_mode & S_IFDIR)) return(1);
return(cc);
}
// 可读普通文件
int isrfile(char *path)
{
struct stat buf;
int cc;
int euid,egid;
cc=stat(path,&buf);
if(!cc) {
if((buf.st_mode & S_IFMT) != S_IFREG) return 0;
euid=geteuid();
egid=getegid();
if(euid==0) {
if(buf.st_mode & S_IRUSR || buf.st_mode & S_IRGRP ||
buf.st_mode & S_IROTH)
return 1;
else return 0;
}
if((buf.st_mode & S_IROTH)!=0) return 1;
if((buf.st_gid == egid) && ((buf.st_mode & S_IRGRP)!=0))
return 1;
if((buf.st_uid == euid) && ((buf.st_mode & S_IRUSR)!=0))
return 1;

}
return cc;
} 【江西新华】
追问
嗯能解释一下各行代码的作用么,谢谢。。还有这个程序没有main函数。。。。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-08-05
展开全部
#include <sys/stat.h>
#include <unistd.h>
// 目录
int isdir(char *path)
{
struct stat buf;
int cc;
cc=stat(path,&buf);
if(!cc && (buf.st_mode & S_IFDIR)) return(1);
return(cc);
}
// 可读普通文件
int isrfile(char *path)
{
struct stat buf;
int cc;
int euid,egid;
cc=stat(path,&buf);
if(!cc) {
if((buf.st_mode & S_IFMT) != S_IFREG) return 0;
euid=geteuid();
egid=getegid();
if(euid==0) {
if(buf.st_mode & S_IRUSR || buf.st_mode & S_IRGRP ||
buf.st_mode & S_IROTH)
return 1;
else return 0;
}
if((buf.st_mode & S_IROTH)!=0) return 1;
if((buf.st_gid == egid) && ((buf.st_mode & S_IRGRP)!=0))
return 1;
if((buf.st_uid == euid) && ((buf.st_mode & S_IRUSR)!=0))
return 1;

}
return cc;
} 【江西新华】
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式