在Linux中实现文本文件的复制_莫韵乐的小脚印笔记
程序员文章站
2024-03-12 23:03:38
...
在Linux中实现文本文件的复制
写这个程序这个当然要带一点挑战
挑战一:文件的长度不确定
挑战二:只能用底层I/O
(反正我觉得找这个的都是来抄作业的,如果这篇博客能帮助到你,点个赞然后在评论里写个谢谢就好了)
首先我们在Linux里面创建一个文本文件
输入内容(就用ls的重定向输出好了,乱打字也可以)
接着我们创建一个c文件(名字自己喜欢就好)
在用gedit打开,输入我写的代码(构思是要靠经验的)
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>
#include<string.h>
int main(int argc, char **argv)
{
int fd1 = -1;
int fd2 = -1;
char buf[11]="";
int ret = 1;
fd1 = open(argv[1],O_RDONLY);
if(fd1 == -1)
{
printf("file1 open error!\n");
exit(1);
}
//由于我的umask的默认为0022,那么创建出来的文件就是0666-0022=0644
fd2 = open(argv[2],O_RDWR | O_CREAT,0666);
if(fd2 == -1)
{
printf("file2 open error!\n");
exit(1);
}
while(ret>0){
ret = read(fd1,buf,10);
write(fd2,buf,ret);
}
printf("file copy complete!\n");
close(fd1);
close(fd2);
return 0;
}
保存退出,用gcc编译文件
我们可以看到程序没有任何错误,接下来我们就可以使用一下这个代码
我们可以看到a.txt向b.txt复制成功了,我们来看一下吧b.txt的内容
mycopy.c已经成功地将a.txt的内容复制到b.txt中
挑战一完成✔
挑战二完成✔
下次再见啦!拜拜
我的其他系列:
安卓开发日记第一天
下一篇: 简单通用JDBC辅助类封装(实例)