linux文件编程(2)——系统文件描述符、动静态文件、块设备介绍
生活随笔
收集整理的這篇文章主要介紹了
linux文件编程(2)——系统文件描述符、动静态文件、块设备介绍
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
參考:linux文件編程(2)——文件操作原理簡述之文件描述符、動靜態文件、塊設備
作者:丶PURSUING
發布時間: 2021-04-09 11:14:12
網址:https://blog.csdn.net/weixin_44742824/article/details/115209312
目錄
- 系統占用的文件描述符
- 系統文件描述符使用示例
- 靜態文件與動態文件
系統占用的文件描述符
| 標準輸入 | STDIN_FILENO | 0 | read(0,buf,255) | 從標準輸入(鍵盤)的地方讀取255個字節存放到buf |
| 標準輸出 | STDOUT_FILENO | 1 | write(1,buf,255) | 將buf中的255個字節寫入到標準輸出(shell,屏幕) |
| 標準錯誤 | STDERR_FILENO | 2 | - | 文件出錯時的錯誤信息可以放到標準錯誤里面打印(工程做大時),相當于往2中扔垃圾 |
文件描述符的作用域僅為當前進程
系統文件描述符使用示例
#include <unistd.h> #include <stdlib.h>int main() {char* buf = (char* )malloc(128);//從標準輸入中讀取read(0,buf,128);//打印到標準輸出中write(1,buf,128);return 0; }運行結果:
靜態文件與動態文件
靜態文件:存放于磁盤,未被打開的文件
動態文件:當使用open后,在linux內核會產生一個結構體來記錄文件的信息,例如fd,buf,信息節點.此時的read,write都是對動態文件進行操作,當close時,才把緩存區所有的數據寫回磁盤中。
為什么不直接操作塊設備(靜態文件)
塊設備本身讀寫不靈活,按照塊來讀寫,而內存是按照字節單位操作的.例如一個塊中存放著20個字節,想修改其中的一個字節,用塊就無法修改.
總結
以上是生活随笔為你收集整理的linux文件编程(2)——系统文件描述符、动静态文件、块设备介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转:pysqlite笔记
- 下一篇: redis 学习笔记(1)-编译、启动、