
请各位看一下,为什么我这个write写的文件用这个read没法读取
关注【相关推荐】
ssize_t read(int fd, void *buf, size_t count); ssize_t :有符号整型
ssize_t write(int fd, const void *buf, size_t count);
read 返回值
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h> //read,write
#include <iostream>
using namespace std;
int main(){
//打开一个以及存在的文件
int fd = open("hello.txt",O_RDONLY);
if(fd == -1){
perror("文件打开失败");
exit(1);
}
//创建一个新文件
int fd1 = open("newfile.txt",O_CREAT | O_WRONLY,0777);
if(fd1 == -1){
perror("创建失败");
exit(1);
}
//读文件
char buf[2048] = {0};
int count = read(fd,buf,sizeof(buf));
if(count == -1){
perror("读文件失败");
exit(1);
}
while(count){
//将读出的数据写入到另一个文件中
int ret = write(fd1,buf,count);
cout << "write bytes: " << ret << endl;
count = read(fd,buf,sizeof(buf));
}
//关闭文件
close(fd);
close(fd1);
return 0;
}