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