在Linux中实现文本文件的复制_莫韵乐的小脚印笔记

在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中

挑战一完成✔

挑战二完成✔

下次再见啦!拜拜

我的其他系列:
安卓开发日记第一天

发布了5 篇原创文章 · 获赞 7 · 访问量 155

猜你喜欢

转载自blog.csdn.net/MO_AT_FI/article/details/105478217