1 /* 2 使用文件IO将文件fds中的内容复制到文件fdd中去 3 1.创建两个文件描述符 4 2.使用open()方法分别以只读只写方式将文件描述符符文件连接 5 3.将读位置后移三位 6 4。将fds内容存储到缓冲区。 7 5,将缓冲区内容写入fdd文件 8 9 */ 10 11 //open()的头文件 12 #include<sys/stat.h> 13 #include<fcntl.h> 14 15 //write()的头文件 16 #include<unistd.h> 17 18 #include<stdio.h> 19 int main(){ 20 21 int fds,fdd; 22 char buff[64]={0}; 23 if((fds=open("fds.txt",O_RDONLY))<0){ 24 perror("fail to open fds"); 25 return -1; 26 } 27 if((fdd=open("fdd.txt",O_WRONLY|O_CREAT,0660))<0){ 28 29 perror("fail to open fdd"); 30 return -1; 31 } 32 lseek(fds,3,SEEK_SET); 33 int len=read(fds,buff,64); 34 write(fdd,buff,len); 35 36 37 close(fdd); 38 close(fds); 39 return 0; 40 }
错误解析:
(1)fiage标志位:O_APPEND 的作用,写文件时读写位置指向末尾,例如,未使用O_APPEND是原文1122,写入AA,则最终文件结果:AA22
(2)使用open()函数时,设置flags时O_RDOLIY|O_ERONLY中将( |) 写成(,) 关键编译器不报错。