用C语言 写unix 的 cp指令 30

需要运行的是./cpfiledir把一个文件复制到一个目录里./cpdir1dir2把一个目录里的所有文件复制到另外一个目录里谁能帮我看看谢啦就是判断输入的第二个参数是文... 需要运行的是./cp file dir 把一个文件复制到一个目录里
./cp dir1 dir2 把一个目录里的所有文件 复制到另外一个目录里
谁能帮我看看 谢啦
就是判断输入的第二个参数是文件 还是 目录
展开
 我来答
liujiahi
2011-08-31 · TA获得超过1001个赞
知道小有建树答主
回答量:621
采纳率:66%
帮助的人:421万
展开全部
你问的不是很清楚。
cp命令的话
cp dir1 dir2肯定不行的嘛,拷贝目录要加-R 或者-a参数的。
如果是自己写程序实现cp命令的话,用stat, 或者 lstat 或者 fstat函数。
具体查manpage.
追问
恩 我用的stat写的 
想用下面这个方法判断 目标文件夹里 有没用和要复制的文件同名的 来防止文件被覆盖 不过遇见空文件夹会出现错误
while((direntp = readdir(dir_ptr))!=NULL || fileExist != 1){
//想在这加个判断 如果文件是空的 直接跳出 要怎写啊
if(strcmp(agv[1], direntp->d_name)==0){
fileExist++;
}
}
追答
没看你的全部程序不好说。
不过感觉对 源文件夹是否为空的判断最好不要 跟 目标文件夹里是否有重名 混在一起。
前面先进行文件是否为空的判断,比如:
while ((dirp = readdir(dir)) != NULL)
{
if (strncmp (dirp->d_name, ".", 1) && strncmp (dirp->d_name, "..", 2))
{
emptyflag = 0;
break;
}
}
if (!emptyflag)
{
//not empty, you operation
//这样判断了是否为空还跳过了非空目录中的. 和..
while ((dirp = readdir(dir)) != NULL)
{
printf ("%s\n", dirp->d_name);
}
}
BriGuy
2011-08-31
知道答主
回答量:43
采纳率:0%
帮助的人:26.5万
展开全部
请直接看UNIX高级编程吧,例一就是。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
humingyo66
2011-09-01 · TA获得超过2.7万个赞
知道大有可为答主
回答量:2.4万
采纳率:0%
帮助的人:1.4亿
展开全部
你在网上搜一下linux coreutils 这是linux的一个工具集,你上面所说的源码都有。
我这网速比较慢,不容易下载。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式