快速建站的模板,网站全站开发需要学什么,百度搜索引擎优化案例,百度智能云windows系统服务器建站1. 知识点 读入写出#xff0c;切记以我们程序为中心向文件或者别的什么东西读入写出#xff08;输入流输出流#xff09; 人话就是 文件向我们程序就是读入 程序向文件或者别的什么就是写出 2. open打开文件 open.c /****************************************************… 1. 知识点 读入写出切记以我们程序为中心向文件或者别的什么东西读入写出输入流输出流 人话就是 文件向我们程序就是读入 程序向文件或者别的什么就是写出 2. open打开文件 open.c /************************************************************************* File Name: open.c Author: lsf Mail: lsf_2012163.com Created Time: 2023年10月20日 星期五 10时30分06秒************************************************************************/#includestdio.h
#includeunistd.h
#includesys/types.h
#includesys/stat.h
#includefcntl.h//使用open函数
int main()
{//打开文件---1.txt文件存在int fd1 open(./1.txt,O_RDWR);//创建文件int fd2 open(./2.txt,O_RDWR | O_CREAT,0777);printf(fd1 %d fd2 %d\n,fd1,fd2);//关闭文件close(fd1);close(fd2);return 0;
} 3. read读入文件 read.c #includestdio.h
#includeunistd.h
#includesys/types.h
#includesys/stat.h
#includefcntl.h
#includestring.h//使用read函数
int main()
{//打开文件---1.txt文件存在int fd1 open(./1.txt,O_RDWR);char buf[10]{0};//读文件while(1){memset(buf,0,sizeof(buf));//清空缓存区ssize_t ret read(fd1,buf,sizeof(buf)-1);printf(%s,buf);if(ret0){break;}}//关闭文件close(fd1);return 0;
} 3.2 实现cat函数 cat.c #include sys/types.h
#include sys/stat.h
#include fcntl.h
#include stdio.h
#include unistd.h
#include string.h//自己写一个cat函数int main(int argc, char **argv)//cat.out 1.txt 2.txt 3.txt 4.txt
{ //argv[0] argv[1] argv[2]if(argc 1){printf(请给我至少一个文件的路径\n);return 0;}int i;for(i1;iargc;i){int fd1 open(argv[i],O_RDWR);char buf[10] {0};while(1){memset(buf,0,sizeof(buf));//内存重置,清空bzero(buf,sizeof(buf));ssize_t n read(fd1,buf,sizeof(buf)-1);printf(%s,buf);//退出条件if(n 0){close(fd1);break;}}}
} 4. write写出文件 write.c #includestdio.h
#includeunistd.h
#includesys/types.h
#includesys/stat.h
#includefcntl.h
#includestring.h//使用write函数实现文件的复制int main()
{int fd1 open(./1.txt,O_RDONLY);int fd2 open(./2.txt,O_WRONLY|O_CREAT,0777);char buf[10];//文件的复制while(1){//内存清空memset(buf,0,sizeof(buf));//读文件ssize_t n read(fd1,buf,sizeof(buf)-1);//写文件write(fd2,buf,strlen(buf));if(n0){close(fd1);close(fd2);break;}}return 0;
}5. lseek光标函数 lseek.c #includestdio.h
#includeunistd.h
#includesys/types.h
#includesys/stat.h
#includefcntl.h
#includestring.h//使用lseek函数int main()
{int fd1 open(./4.txt,O_RDWR|O_CREAT,0777);char buf[12] hello world;char buf2[12];//写文件write(fd1,buf,strlen(buf));lseek(fd1,0,SEEK_SET);//使光标复位到起始为止//读文件memset(buf2,0,sizeof(buf2));//清空缓存区read(fd1,buf2,sizeof(buf2));printf(%s\n,buf2);close(fd1);return 0;
}6. perror错误打印函数 7. 练习 7.1 自我实现多个文件一起复制 copy函数 my_copy.c #includestdio.h
#includeunistd.h
#includesys/types.h
#includesys/stat.h
#includefcntl.h
#includestring.h//自我实现copy函数int main(int argc, char **argv)
{if(argc 1){printf(请给我至少一个文件的路径\n);return 0;}int i0;for(i1;iargc;i2){int fd1 open(argv[i],O_RDONLY);int fd2 open(argv[i1],O_WRONLY|O_CREAT,0777);char buf[12];//文件的复制while(1){//内存清空memset(buf,0,sizeof(buf));//读文件ssize_t n read(fd1,buf,sizeof(buf)-1);//写文件write(fd2,buf,strlen(buf));if(n0){close(fd1);close(fd2);break;}}}return 0;
} 7.2 自我实现两个文件的比较diff函数 #includestdio.h
#includeunistd.h
#includesys/types.h
#includesys/stat.h
#includefcntl.h
#includestring.h//自我实现diff函数int main(int argc,char** argv)
{if(argc 1){printf(请给我至少一个文件的路径\n);return 0;}//打开两个文件int fd1 open(argv[1],O_RDONLY);int fd2 open(argv[2],O_RDONLY);char buf1[5] {0};char buf2[5] {0};int flag 0;//两文件相同while(1){//读取文件memset(buf1,0,sizeof(buf1));memset(buf2,0,sizeof(buf2));ssize_t n1 read(fd1,buf1,sizeof(buf1)-1);ssize_t n2 read(fd2,buf2,sizeof(buf2)-1);//比较读取出来的bufif(strcmp(buf1,buf2)!0){flag 1;//不同break;}if(n10){close(fd1);break;}if(n20){close(fd2);break;}}//至此if(flag){printf(两个文件不同\n);}else{printf(两文件相同\n);}return 0;
}