#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);


}


更多相关文章

  1. 从QQ浏览器缓存文件中提取出完整的视频
  2. Linux程序设计——文件操作(标准I/O库)
  3. Linux之profile、bash_profile、bashrc文件
  4. Linux服务器权限管理实践——添加用户只访问某些文件目录
  5. 如何卸载内核代码中的文件系统
  6. 如何在init.d上重启Jar文件?
  7. Linux文件权限查看及修改命令chmod
  8. linux下打乱txt文件的行序
  9. Linux 查询文件内容重复数 uniq

随机推荐

  1. XML—XML文件约束之DTD详解
  2. 疯狂XML学习笔记(13)---------XML DOM
  3. Java&Xml教程(十)XML作为属性文件使用
  4. XML—XML介绍和基本语法
  5. 疯狂XML学习笔记(12)------------XPath
  6. Java&Xml教程(八)使用JDOM将Java对象转换为
  7. ajax的xmlHttpRequest对象
  8. Java&Xml教程(七)使用JDOM修改XML文件内容
  9. 疯狂XML学习笔记(11)-----------XSLT讲解
  10. Java&Xml教程(六)使用JDOM解析XML文件