Linux c语言操作入门文件编程之实现CP指令
1.命令行参数传递
- 通过main函数进行命令行参数到传递,参数以字符串的形式传入
- 参数中如果涉及到数字,计算前需要利用atoi函数实现数字字符到整形数的转化
#include <stdio.h>
int main(int argc,char** argv)
{
printf("共输入参数%d个\n",argc);
for(i=0;i<argc;i++)
{
printf("第%d个参数输入为:%s\n",i+1,argv[i]);
}
return 0;
}
2.CP指令实现
2.1 实现逻辑
- 利用命令行传参将当前路径下的源文件和待创建的文件名称传入执行函数中
- 打开并读取当前路径下的源文件的内容
- 打开或创建待复制文件
- 将读取到的文件内容写入待复制文件中
2.2 实现源码
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
int main(int argc,char **argv)
{
int fdSrc;
int fdDes;
fdSrc=open(argv[1],O_RDWR);
int filesize=lseek(fdSrc,0,SEEK_END);
char* buf=NULL;
lseek(fdSrc,0,SEEK_SET);
buf=(char *)malloc(sizeof(char)*filesize+8);
if(argc!=3)
{
printf("input param error!!!\n");
exit(-1);
}
int num_read=read(fdSrc,buf,filesize);
fdDes=open(argv[2],O_RDWR|O_CREAT|O_TRUNC,0600);
int num_write=write(fdDes,buf,filesize);
if(num_write!=-1)
{
printf("write success!!!\n");
}
close(fdSrc);
close(fdDes);
return 0;
}