cp指令的编写

Cp 原文件 目标文件
1、C语言的参数
2、思路:
(补充:)

int main(int argc,char **argv){//**argv里的每一项都是数组  argc表示三个参数
        printf("total par ams %d\n",argc);
        printf("NO.1 par ams %s\n",argv[0]);
        printf("NO.2 par ams %s\n",argv[1]);
        printf("NO.3 par ams %s\n",argv[2]);
        return 0;
}

1、在刚开始学习写程序的人员经常会碰到如下形式的main函数,int main(int argc, char** argv)或者int main(int argc, char* argv[]),或者void main(int argc, char** argv)或者void main(int argc, char* argv[]),细心点的初学者一定会发现,这里的main函数,有两个输入参数,argc和argv。
2、下面我就来简单介绍一下这里argc和argv的含义。其实,这里的argc是argument count的简称,argv是argument variable的简称,也就是,argc指代参数的个数argv指代每个参数,需要留意的是,这里的argv是一个二维指针。有的程序员,在写程序的时候,喜欢采用命令行的方式启动(有地啊类似于DOS方式)程序。对于这种方式启动的程序,一般要求程序的使用者,通过命令行来输入一些必要的参数,从而使得程序可以正确的运行。而由命令行来启动的程序,如果你采用鼠标双击来启动的话,很有可能会“一闪而过”,也就是:程序什么也不做,马上退出。其实,通过命令行的方式来启动程序,也很简单。
假设,需要用命令行启动的程序是位于D:/testExample/test.exe,那么,首先,鼠标依次点击:开始---->运行,输入,“cmd”,回车,这样,就进入了命令行输入方式(有点像DOS界面),然后,输入“cd d:/testExample”, 回车,输入“d:”回车,输入“test”,这样,就达到了以命令行方式启动的目的了。一般来说,通过命令行启动的方式,需要程序使用者输入一些额外的参数,例如,进入命令行以后,输入"test c:/testPic/01.jpg",就是在启动test.exe程序的同时,给该程序指定一个额外的参数“c:/testPic/01.jpg”。这里,argc也就是参数的个数,就是2个,test为第一个参数,空格之后的“c:/testPic/01.jpg”是第二个参数,换句话说,argc=2,argv[0]=“test”,argv[1]=“c:/testPic/01.jpg”。
在这里插入图片描述

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>

int main(int argc,char **argv){//输入参数必须为三个,第一个为test 第二个为输入文件的路径,第三个为输出文件的路径
	int fdScr;
	int fdDes;
	char *readBuf=NULL;
	if(argc!=3){
		printf("Dar arm error\n");
		exit(-1);
	}
	fdScr=open(argv[1],O_RDWR);
	int size=lseek(fdScr,0,SEEK_END);
	lseek(fdScr,0,SEEK_SET);
	readBuf=(char *)malloc(sizeof(char)*size+8);
	int n_read=read(fdScr,readBuf,size);
	fdDes=open(argv[2],O_RDWR|O_CREATE|O_TRUNC,0600);
	int n_write=(fdDes,readBuf,strlen(readBuf));

	close(fdScr);
	close(fdDes);
	return 0;
}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值