C语言文件I/O 读取一个文件并输出出来 和 输出到另一个文件里面

时间:2022-09-29 19:36:39
#include<unistd.h>
#include<stdio.h>
#include<fcntl.h>
#include<sys/types.h>

#define SIZE 50

int main(void)
{
		
	char buf[SIZE]={0};   //接收读取的东西的盒子
	int ret = 0;	      // ret表示read读取的字节数
	int retOpen =0;	      //  是open的返回值   也就是后面要用的文件描述符

	retOpen = open("test.txt",O_RDONLY);
	if(retOpen<0)
	{	
		perror("open error");
		return -1;
	}
	while(1){
	ret = read(retOpen,buf,SIZE-1);
	if(0 == ret)
	{
		printf("-----finished------\n");	
		break;	
	}else if(0>ret)
	{
		perror("qweq");
		break;
	}
	printf("读取到%d个字节\n",ret);	
	//printf("%s",buf);
	write(STDOUT_FILENO,buf,ret);
	}	
	//STDOUT_FILENO 代表的是 标准输出的 打印在屏幕上     
	write(STDOUT_FILENO,buf,ret);
	close(retOpen);
	return 0;
}

打开一个文件,把它的内容输出到另一个文件中(不能是stdout)

   提前创建 1.txt  里面需要有数据     2.txt 空的就好

/*

	功能:打开一个文件,把它的内容输出到另一个文件中(不能是stdout).

		作者:杨磊

*/

#include<stdio.h>

#include<unistd.h>

#include<sys/types.h>

#include<fcntl.h>

#define SIZE 256

int main()

{

	//先定义一个buf接受read 的数据

	char buf[SIZE]={0};

	int fp = 0;//接收 open的返回值  作为后面的方法的文件指示符;  第一个文件

	int fp1 = 0;  //这是 需要写入的文件

	int readret=0;

	

	fp = open("1.txt",0666);

	fp1 = open("2.txt",O_RDWR,777);

	

	if(fp < 0)

	{

		perror("error!");

		return -1;

	}

	while(1)

	{

		readret = read(fp,buf,SIZE-1);

		if(0 == readret)

		{

			printf("--------finished--------\n");

			break;

		}else if(0>readret)

		{

			perror("read error");

			break;

		}

		write(fp1,buf,readret);

		

	}

	close(fp);

	close(fp1);


}