main函数参数
int main(int argc,char *argv[])
{
return 0;
}
C语言规定了main函数的参数只能有两个,一个是argc,一个是argv并且,argc只能是整数,第二个必须是指向字符 串的指针数组。
argc: 参数表示命令行中参数的个数(注意 文本名本身也是一个参数),rgc的值是在输入命令行时由系统按 实际参数的个数自动赋予的。
argv :参数是字符串指针数组,其各元素值为命令行中各字符串(参数均按字符串处理)的首地址。 指针数组 的长度即为参数个数。数组元素初值由系统自动赋予。
一般我们的main函数会直接生成a.out的可执行文件,我们要传参数,直接在执行a.out后面加上所需传参数即可
cp指令
就是复制文件内容到另外一个文件中的指令,基本指令为 : cp 文件1 文件2
查看两个文件里面内容是否完全形同可用diff+文件1+文件2指令查看,若没有反应就表示完全相同
通过open read等一些函数实现这个功能,基本步骤如下
主要代码框架
注意不要忘记函数所对应的头文件和和各种函数的各项参数的数据类型!!!!
这里边用if(argc!=3)
要两个额外的命令行参数:
- 第一个命令行参数(
argv[1]
)应该是想要读取数据的源文件的路径。 - 第二个命令行参数(
argv[2]
)应该是想要写入数据的目标文件的路径。
因此,如果程序想要正确地执行其功能(即从一个文件读取数据并写入到另一个文件),它必须接收到这两个额外的命令行参数。如果没有接收到这两个参数(即 argc
的值不等于 3),程序就无法执行预期的操作,因此它打印一个错误消息并返回 -1
,表示异常退出。
demo1.c文件内容
demo2.c文件内容
编译代码,传入两个文件的数据
两代码区别(成功操作)
上述代码可以被适度优化见下文
这里边主要避免了内存被浪费只用了128,增加了数组的更新次数(每次读完数组里面的值之后立刻清空)(memeset(通过优化的方式快速填充内存块)),增加了文件打开判断的提醒,如果没有满足128字节跳出后继续写入