⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myopen.c

📁 在Linux下自己实现文件打开功能
💻 C
字号:
#include <stdio.h>#include <fcntl.h>#include <unistd.h>#define BUFFSIZE 256int main(int argc, char ** argv){ //储存文件的二维数组 char file[BUFFSIZE][BUFFSIZE]; //统计行数 int line=0; //字符缓存 char buf; //读标志位 char flag; int reclen=1; int head,tail; int i=0,j=0; int fd;// printf("Please input the filename:\n"); 用于调试// scanf("%s",filename); printf("Do you want to read all?(y for all,n for specialize lines)\n"); scanf("%c",&flag); //对于文件不存在情况的错误处理 if((fd=open(argv[1],O_RDONLY))==-1) {     printf("Oops..This file doesn't exit!\n");     exit(1); } //读出文件 while(read(fd,&buf,sizeof(buf))==1){     if(buf==EOF)         return 0;	 //通过"\n"来判断行     else if(buf!='\n')        file[i][j++]=buf;     else	 {       file[i][j]='\n';       i++;       j=0;	   //计算行数       line++;     }   // printf("%c\n",buf); } file[i][j]=EOF; //输出全部文件 if(flag=='y'){     for(i=0;i<line;i++)	 {		 //通过"\n"来判断行         for(j=0;file[i][j]!='\n';j++)             printf("%c",file[i][j]);         printf("\n");     }     printf("The total line is:");     printf("%d",line+1);     printf("\n"); } //输出制定的行数 else{    printf("Please input the lines:");    scanf("%d%d",&head,&tail);    for(i=head-1;i<tail;i++)	{        for(j=0;file[i][j]!='\n';j++)            printf("%c",file[i][j]);        printf("\n");    } } //关闭文件 close(fd); return 0;} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -