深入理解計算機系統 第十章 系統級I/O
很多高級語言都提供了執行 I/O 的較高級別的函數。為什麽我們還要學習 Unix I/O?
原因:
1、由於 I/O 和其他系統概念之間有循環依賴關系,故了解 Unix I/O 將幫助我們理解其他的系統概念
2、有些特殊情況,只能或最好使用 Unix I/O。比如標準 I/O 庫沒有提供讀取文件元數據(文件大小和文件創建時間)的方式
由於所有的 I/O 設備都被模型化為文件,所有的輸入和輸出都被當做對相應文件的讀和寫來執行。使得所有的輸入和輸出都能以一種統一且一致的方式來執行。
一般有以下幾種輸入輸出操作:
1、打開文件
2、改變當前的文件位置
3、讀寫文件
4、關閉文件
Linux 文件的類型包含以下幾種:
1、普通文件
2、目錄
3、套接字
Linux 內核將所有文件都組織成一個目錄層次結構,由名為 / 的根目錄確定
進程通過 open 函數打開一個已存在的文件或者創建一個新的文件,通過 read 和 write 函數來執行輸入和輸出。
應用程序能夠通過調用 stat 和 fstat 函數,檢索到關於文件的信息(有時也稱為文件的元數據)
應用程序可以用 readdir 系列函數來讀取目錄的內容
深入理解計算機系統 第十章 系統級I/O
相關推薦
深入理解計算機系統 第十章 系統級I/O
關於 內核 檢索 執行 循環 讀取 當前 讀寫 原因 很多高級語言都提供了執行 I/O 的較高級別的函數。為什麽我們還要學習 Unix I/O? 原因:1、由於 I/O 和其他系統概念之間有循環依賴關系,故了解 Unix I/O 將幫助我們理解其他的系統概念 2、有些特
操作系統——第五章 輸入輸出(I/O)管理
image 就是 輸出 nbsp 輸入輸出 輸入 dct alt 技術 這就是SDT表和DCT表 操作系統——第五章 輸入輸出(I/O)管理
Java網路程式設計——第十章 非阻塞I/O
使用非阻塞IO方式實現chargen收發協議 客戶端 import java.io.IOException; import java.net.InetSocketAddress; import java.net.SocketAddress; import java.nio.ByteBuffer; imp
網絡操作系統 第十章 DNS服務器管理與配置
ip地址 targe 相互 一次 baidu 頂級 light main 能夠 習題 1、什麽是域名系統?描述域名解析的過程。 1)域名系統:Domain Name System縮寫DNS,是因特網的一項核心服務域名系統作為可以將域名和IP地址相互映射的一個分布式數據庫,能
第十章 系統級I/O
程序 描述 個數 方式 網絡 文件鏈接 允許 source linu Unix/ I/O: 這種將設備優雅地映射為文件的方式,允許Linux內核引出一個簡單、低級的應用接口,成為Unix I/O,這使得所有的輸入和輸出都能以一種統一且一致的方式來執行: 1)打開文件 2)L
深入計算機原理——第三章機器級的表示(二)
棧有兩個常用指令: push:把資料壓入棧中 pop:刪除資料 這兩個指令都只有一個運算元 條件碼 除了整數暫存器,CPU還維護著一組單個位的條件碼暫存器,它們描述了最近的算術或邏輯操作的屬性。可以檢測這些暫存器來執行條件分支指令; 常用條件碼有以下幾種: CF:進位標誌。
第18章、java I/O系統
擴充套件內容: 1、uml常用線的含義 聚合、組合、泛化、實現、依賴、關聯 http://blog.csdn.net/jianfpeng241241/article/details/49617449 2、策略模式 http://blog.csdn.net/hguisu/article/details/7558
使用Java理解程式邏輯第十章----幸運抽獎
import java.util.Scanner; public class LuckyNumber5 { /** * 幸運抽獎 */ public static void main(String[] args) { String answer = "y
【深入理解C#】第2章 C#1所搭建的核心基礎
class thread類 委托 組類型 賦值 需要 派生 聲明 -- 1)委托類型 基本理解: 類型安全的函數指針。 可以間接完成某種操作,雖增加了復雜性,但也增加了靈活性。 可以看作方法的占位符。 為什麽要用委托: 可以傳遞函數意味著可以將業務邏輯作為參數傳遞。 間接
第三章 文件 I/O
符號 current 改變 延遲 比較 修改 esc 第5章 命令 3.1 引言 先說明可用的文件 I/O 函數:open、read、write、close,然後說明不同緩沖區長度對read和write函數的影響。 本章所說的函數經常被稱為不帶緩沖的 I/O (un
【APUE】第3章 文件I/O (3) 文件共享、原子操作、函數dup/dum2、函數sync/fsync/fdatasync、函數fcntl、函數ioct1、目錄/dev/fd 使用說明
src 技術分享 fsync 表之間 eight 進程 所有 修改 數據塊 1、文件共享 UNIX系統支持在不同的進程間共享打開文件。為了說明這種共享,以下介紹內核用於所有I/O的數據結構。 內核使用3種數據結構表示打開文件,它們之間的關系決定了在文件共享方面一個進程對
Unix環境高級編程(十五)高級I/O
結構 truct 分享圖片 描述符 %d 強制 ring 用法 cep 1、非阻塞I/O 對低速設備的I/O操作可能會使進程永久阻塞,這類系統調用主要有如下情況:(1)如果數據並不存在,則讀文件可能會使調用者永遠阻塞(例如讀管道、終端設備和網絡設備)。(2)如果數據不能立
深入理解計算機系統_3e 第十一章家庭作業 CS:APP3e chapter 11 homework
cep serve 技術分享 apn only class control 相同 法則 註:tiny.c csapp.c csapp.h等示例代碼均可在Code Examples獲取 11.6 A. 書上寫的示例代碼已經完成了大部分工作:doit函數中的printf("%
深入理解計算機系統第十二章學習筆記
應用級併發應用情況:訪問慢速I/O裝置;與人互動;通過推遲工作以降低延遲;服務多個網路客戶端;在多核機器上進行併發計算。 三種基本構造併發程式的方法:程序、I/O多路複用、執行緒 1、基於程序的併發程式設計 例如構建一個併發伺服器: 假設有1個伺服器和2個客戶端,伺服器正在監聽lis
深入理解計算機系統 第十二章 並發編程
處理器 三種 上進 線程 情況 文件 虛擬地址 邏輯 描述符 如果邏輯控制流在時間上重疊,那麽它們就是並發的(concurrent) 這種常見的現象稱為並發(concurrency),出現在計算機系統的許多不同層面上。 並發不僅僅局限於內核,它也可以在應用程序中扮演
深入理解計算機系統 第三章大略和第五章大略
$0 一個 編譯 存儲器 系統 32位 做了 ++i 擴展 這2章總結的很少,主要是覺得沒那麽重要。 1.2個操作數的指令,第二個操作數通常是目的操作數:movb a b,move a to b,而add a b,b+=a,指令分為指令類,如mov類:movb,movw,m
深入理解計算機系統_3e 第四章家庭作業(部分) CS:APP3e chapter 4 homework
ray design sed copy default ror this 處理 implement 4.52以後的題目中的代碼大多是書上的,如需使用請聯系 [email protected] 流水線部分只寫了偶數題號的,這幾天太浮躁,落下了好多課。。。 4.
深入理解計算機系統_3e 第八章家庭作業 CS:APP3e chapter 8 homework
fig lar man message -- ali rail raise mat 8.9 關於並行的定義我之前寫過一篇文章,參考: 並發與並行的區別 The differences between Concurrency and Parallel +----------
《深入理解計算機系統》第三章學習筆記
並發 錯誤 ia32 庫函數 容易 簡單 linux 嚴重 格式 通過本周的學習,總結出一下知識內容 機器級代碼 計算機系統使用了多種不同形式的抽象,利用更簡單的抽象模型來隱藏實現的細節。 對於機器級編程來說,其中兩種抽象尤為重要: 1、指令集體系結構(Instructio
20179215《深入理解計算機系統(第三版)》第三章
imu 組成 不但 圖片 想是 運行 href com 語言 《深入理解計算機系統》第三章 程序的機器級表示學習 讀書筆記 一、這章主要任務: ? 二、程序編碼 ?計算機系統使用了多種不同形式的抽象,利用更簡單的抽象模型來隱藏實現的細節。對於機器級編程來說,其中兩種抽