日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

210106阶段三 文件I/O

發布時間:2024/4/13 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 210106阶段三 文件I/O 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 一、學習的知識點
    • Linux 文件I/O
    • Windows和Linux對文件管理的差異
    • 文件讀寫
      • open系統調用
      • write系統調用
      • read系統調用
      • lseek系統調用
    • 創建目錄
      • mkdir系統調用
  • 二、上課沒有聽懂或者沒有理解的地方
  • 三、當天學習的收獲

一、學習的知識點

Linux 文件I/O

  • C語言提供的標準庫實現文件讀寫 fopen fclose fwrite
  • linux 的系統調用 open close write
  • 標準庫函數是所有能夠支持C語言的操作系統 提供的統一的讀寫文件的API函數,可以實現代碼的移植
  • Linux系統調用:Linux系統自己的內核提供了對文件讀寫的特殊函數。不具備通用性。
  • 標準庫性能更好,整個函數里面做了緩沖區
  • Linux系統調用API:直接通過操作系統的軟中斷,調用Linux系統內核API來產生事件讀寫。
  • Windows和Linux對文件管理的差異

  • Linux系統下:所有的設備,都把它看做是一個文件。所有的設備想要使用,都是調用open打開,對設備的讀寫都是read write
  • Linux下面所有的設備都有編號:設備號 Linux的dev下面存放所有的設備文件
  • linux系統API 幫助文檔 man 系統調用(如open read write) 或者 man 2 系統調用
  • 文件讀寫

    open系統調用

    /int open(const char *path, int flags);int open(const char *path, int flags,mode_t mode);
    參數path :文件的名稱 可以包含(絕對和相對)路徑 flags:文件打開模式path :文件的名稱,可以包含(絕對和相對)路徑 flags:文件打開模式 mode: 用來規定對該文件的所有者
    返回值打開成功,返回文件描述符;打開失敗,返回-1打開成功,返回文件描述符;打開失敗,返回-1
    int fd; fd = open("/opt/test.txt",O_RDONLY); if (fd < 0) {perror("open erroe:");return -1; }

    write系統調用

    /int write(int fd,void *buf,size_t nbytes);
    參數fd :要寫入的文件的文件描述符 buf: 指向內存塊的指針,從這個內存塊中讀取數據寫入到文件中 nbytes: 要寫入文件的字節個數
    返回值寫入成功,返回寫入到文件中的字節個數;錯誤,返回-1

    read系統調用

    /int read(int fd, void *buf, size_t nbytes);
    參數fd :想要讀的文件的文件描述符 buf: 指向內存塊的指針,從文件中讀取來的字節放到這個內存塊中 nbytes: 從該文件復制到buf中的字節個數
    返回值如果出現錯誤,返回-1 返回從該文件復制到規定的緩沖區中的字節數 文件結束,返回0

    lseek系統調用

    通過指定相對于開始位置、當前位置或末尾位置的字節數來重定位 curp,這取決于 lseek() 函數中指定的位置

    原型off_t lseek (int fd, off_t offset, int base);
    參數fd :需設置的文件標識符 offset :偏移量 base: 搜索的起始位置
    返回值返回新的文件偏移值
    base文件位置
    SEEK_SET從文件開始處計算偏移
    SEEK_CUR從當前文件的偏移值計算偏移
    SEEK_END從文件的結束處計算偏移

    創建目錄

    mkdir系統調用

    用來創建一個稱為pathname的新目錄,它的權限位設置為mode

    原型int mkdir(char *pathname,mode_t mode);
    參數pathname:文件的路徑名 mode:權限位
    返回值調用成功返回0,失敗返回-1

    二、上課沒有聽懂或者沒有理解的地方

    三、當天學習的收獲

    跨平臺編程

    總結

    以上是生活随笔為你收集整理的210106阶段三 文件I/O的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。