问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言实现CP指令

发布网友 发布时间:2022-03-31 17:18

我来回答

4个回答

热心网友 时间:2022-03-31 18:47

用C实现的步骤是:
1、解析命令,就是提取出源路径和目标路径,以及文件名。
2、写一个切换目录的函数,比如chgdir(char *),路径名字做参数。
3、执行切换目录函数,正确执行后,在这个目录下找到目标文件,定义一个缓冲区,把文件内容拷贝进去,找不到文件另作处理。
4、再调用2步骤中的目录切换函数,在目标路径下建立一个空文件并把缓冲区内容写进去,保存。

热心网友 时间:2022-03-31 20:05

/***********************************
实现普通文件(regular file)内容的复制
./a.out file1 file2 linux下gcc编译
cp file1 file2 本程序仅仅实现本功能
************************************/
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <error.h>
#include <stdlib.h>
#define BUFFSIZE 4096
int main(int argc, char *argv[])
{
int fds,fdt,n;
struct stat buf;
char buff[BUFFSIZE];
/*判断命令行参数*/
if(argc != 3){
fprintf(stderr,"usage: ... filename filename\n");
exit(1);
}

if(stat(argv[1],&buf) < 0){
perror("stat error");
exit(2);
}
/*判断file1是否存在*/
if(access(argv[1],F_OK) < 0){
fprintf(stderr,"%s isn't existing!\n",argv[1]);
exit(3);
}
/*判断file1是否是普通文件*/
if(S_ISREG(buf.st_mode) == 0){
fprintf(stderr,"%s isn't regular file!\n",argv[1]);
exit(4);
}
/*打开目标文件和源文件*/
if((fds = open(argv[1],O_RDONLY)) < 0){
perror("open source file error");
exit(5);
}
if((fdt = open(argv[2],O_WRONLY|O_CREAT,S_IRUSR|S_IWUSR|S_IXUSR)) < 0){
perror("open target file error");
exit(5);
}
/*读写操作*/
while((n = read(fds,buff,BUFFSIZE)) > 0)
if(write(fdt,buff,n) != n)
perror("write error");
close(fds);
close(fdt);
return 0;
}

热心网友 时间:2022-03-31 21:40

给思路行吗?具体的程序得花一些时间啊~~ 先说cp命令用法:cp 源路径 目标路径所以用C实现的步骤是: 1、解析命令,就是提取出源路径和目标路径,以及,gysQqc

热心网友 时间:2022-03-31 23:31

copy?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
mrna转录试剂盒 windows7应用程序损坏或丢失怎么办? 联想windows7怎么恢复不小心删除的应用 Win7电脑图标不见了如何恢复解决Win7电脑图标丢失问题的有效方法_百 ... 美女主播软件有哪些 什么软件看美女直播? 什么视频直播软件可以免费看女神直播? 钣金工业设计 钣金灰本段用途 关于刮胡子的相关问题 天天酷跑0219联盟哪区的 烧饼修改器怎么不能改天天联盟了 天天有钱联盟是做什么的啊? 天天工作室淘宝联盟是真的吗 《英雄联盟》手游国际服现在热度如何了? 高佣联盟天天种红包是真的吗? 英雄联盟几乎天天更新,哪有那么多要跟新的 《天天连萌》“烧饼游戏大师”修改器刷高分攻略 网站如何加入广告联盟网站如何加入广告联盟 “烧饼修改器”能修改“天天联盟”吗? 404 Not Found 烧饼修改器现在为什么不能修改天天联盟了 天天联盟工作室靠谱不 天天联盟怎么操作赚佣金 天天直播联盟在哪里下载? 补脾健胃消食成药 脾胃虚弱吃什么?七种食物补脾健胃 补脾健胃药膳有哪些? 吃什么食物补脾健胃 沙发换皮翻新一套多少钱?沙发换皮翻新价格报价大全 404 Not Found 做梦梦见儿子丢了,找到了,自己哭醒 嵌入式测试的测试工具 电脑的配置在哪里可以看到? M1136MFP打印机怎样设置发票模式 如何查找QQ浏览器历史记录 手机qq浏览器怎么查看历史记录? qq浏览器的历史记录怎么恢复 怎么找回QQ浏览器历史记录 qq浏览器怎么查看上个月的历史记录 qq浏览器怎样找10天以前的浏览记录 这是空调制热模式吗? 这是空调的什么模式? 这是什么牌子的空调 急 这是什么空调? 这是几匹的空调? 这是什么空调 这是啥空调 这是空调的铭牌,如何看功率? 如图,这是什么空调?