乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      磁盤文件操作

       londonKu 2012-11-06
      操作系統(tǒng)實(shí)驗(yàn)終于全部做完啦,這是最后一個(gè),是模擬磁盤操作的,大概的理解了題意之后發(fā)現(xiàn)其實(shí)這個(gè)很簡(jiǎn)單的,原來(lái)一直想找個(gè)機(jī)會(huì)聯(lián)系一下文件操作,這下可好,
      好好的熟悉了一下。
      注:一定要是絕對(duì)路徑!
      這個(gè)程序?qū)崿F(xiàn)的功能有:
      1建立文件
      2讀文件
      3寫文件
      4刪除文件
      5建立文件夾
      6顯示文件夾內(nèi)的文件列表
      7刪除文件夾
      8顯示文件屬性
      9改寫文件屬性
      由于最近事比較多,心情比較煩,所以文件復(fù)制,重命名之類的都沒(méi)去弄他,回頭有時(shí)間再看看,總之題目的功能是實(shí)現(xiàn)了,一下的代碼估計(jì)有我沒(méi)測(cè)試到的BUG,僅供參考
      
      
      
      
      #include <stdio.h>
      #include <stdlib.h>
      #include <sys/stat.h>
      #include <sys/types.h>
      #include <dirent.h>
      #include <unistd.h>
      #include <fcntl.h>
      #include <string.h>
      void showmenu()
      {
              printf("1-建立文件\n");
              printf("2-讀文件\n");
              printf("3-寫文件\n");
              printf("4-刪除文件\n");
              printf("5-建立目錄\n");
              printf("6-顯示目錄內(nèi)容\n");
              printf("7-刪除目錄\n");
              printf("8-顯示文件屬性\n");
              printf("9-改變文件屬性\n");
              printf("請(qǐng)選擇功能:");
      }
      
      int createfile()
      {
              int flag;
              char  name[50];
              printf("請(qǐng)輸入要?jiǎng)?chuàng)建的文件名稱:");
              scanf("%s",name);
              if((flag=open(name,O_CREAT|O_RDWR|O_TRUNC,0700))<0)
              {
                      perror("文件創(chuàng)建失敗!\n");
                      exit(1);
              }
              else
                printf("文件創(chuàng)建成功!\n");
              close(flag);
      }
      
      int readfile()
      {
              char buffer[100],name[50];
              int fd;
              printf("請(qǐng)輸入要讀取的文件名稱:");
              scanf("%s",name);
              fd=open(name,O_RDONLY);
              if(fd<0)
              {
                printf("文件打開失敗!\n");
                exit(1);
              }
              read(fd,buffer,sizeof(buffer));
              printf("%s\n",buffer);
              close(fd);
      }
      
      int writefile()
      {
              char buffer[100],name[50];
              int fd;
              printf("請(qǐng)輸入要寫入的文件名稱:");
              scanf("%s",name);
              fd=open(name,O_WRONLY);
              if(fd<0)
              {
                      printf("文件打開失?。n");
                      exit(1);
              }
              printf("請(qǐng)輸入要輸入文件的內(nèi)容:\n");
              getchar();
              scanf("%s",buffer);
              write(fd,buffer,sizeof(buffer));
              close(fd);
      }
      
      void deletefile()
      {
              char name[50];
              int flag;
              printf("請(qǐng)輸入刪除的文件名稱:");
              scanf("%s",name);
              flag=remove(name);
              if(flag==0)
                printf("文件刪除成功!\n");
              else
                printf("文件刪除失??!\n");
      }
      
      void creatediction()
      {
              char name[50];
              printf("請(qǐng)輸入目錄的名稱(以根目錄開始):\n");
              scanf("%s",name);
              int flag=mkdir(name,S_IRWXU|S_IRWXG|S_IROTH|S_IXOTH);
              if(flag==0)
                printf("文件夾創(chuàng)建成功!\n");
              else
                printf("文件夾創(chuàng)建失??!\n");
      }
      
      int  showdiction()
      {
              DIR * dir;
              struct dirent * ptr;
              int i;
              char * name;
              printf("請(qǐng)輸入要顯示的文件目錄名稱:\n");
              scanf("%s",name);
              dir=opendir(name);
              ptr=readdir(dir);
              //if(ptr==NULL)
              //{
                      //printf("目錄為空,請(qǐng)新建一個(gè)文件\n");
                  //return 0;
              //}
              while((ptr=readdir(dir))!=NULL)
              {
                      printf("%s\n",ptr->d_name);
              }
              closedir(dir);
      }
      
      int deletediction()
      {
              char name[50];
              int flag;
              printf("請(qǐng)輸入文件夾的名稱:");
              scanf("%s",name);
              flag=rmdir(name);
              if(flag==0)
                printf("文件夾刪除成功!\n");
              else
                printf("文件夾不為空,請(qǐng)刪除文件!\n");
      }
      
      void showmode()
      {
              char name[50];
              int flag,n;
              struct stat buf;
              printf("請(qǐng)輸入要顯示的文件名稱:");
              scanf("%s",name);
              flag=stat(name,&buf);
              n=buf.st_mode;
              //printf("%d\n",buf.st_mode);
              switch(n)
              {
                      case 33088:
                      printf("%s--------500\n",name);
                      break;
                      case 32960:
                      printf("%s--------300\n",name);
                      break;
                      case 33261:
                      printf("%s--------700\n",name);
                      break;
                      default:
                      break;
              }
                      if(flag!=0)
                              printf("文件屬性顯示失??!\n");
      }
      
      int changemode()
      {
              char name[50];
              int flag,n;
              printf("請(qǐng)輸入要改變的文件名稱:");
              scanf("%s",name);
              printf("請(qǐng)輸入要改變的類型:\n");
              printf("1.只讀\n2.只寫\n3.可讀可寫\n");
              scanf("%d",&n);
              switch(n)
              {
                      case 1:
                              flag=chmod(name,0500);
                              if(flag==0)
                                printf("文件已改為只讀類型!\n");
                              else
                                printf("文件修改失?。n");
                              break;
                      case 2:
                              flag=chmod(name,0300);
                              if(flag==0)
                                printf("文件已改為只寫類型!\n");
                              else
                                printf("文件修改失敗!\n");
                              break;
                      case 3:
                              flag=chmod(name,0700);
                              if(flag==0)
                                printf("文件已改為可讀可寫類型!\n");
                              else
                                printf("文件修改失?。n");
                              break;
                      default:
                              break;
              }
      }
      int main()
      {
              int n;
              while(1)
              {
                      showmenu();
                      scanf("%d",&n);
                      switch(n)
                      {
                              case 1:
                                      createfile();
                                      break;
                              case 2:
                                      readfile();
                                      break;
                              case 3:
                                      writefile();
                                      break;
                              case 4:
                                      deletefile();
                                      break;
                              case 5:
                                      creatediction();
                                      break;
                              case 6:
                                      showdiction();
                                      break;
                              case 7:
                                      deletediction();
                                      break;
                              case 8:
                                      showmode();
                                      break;
                              case 9:
                                      changemode();
                                      break;
                              default:
                                      printf("輸入有誤,請(qǐng)重新選擇!\n");
                                      break;
                      }
              }
      }

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多