第三階段知識回顧(1)

2021-10-23 21:53:23 字數 1889 閱讀 5452

標準i/o:標準i/o是ansi c建立的乙個標準i/o模型,是乙個標準函式包和stdio.h標頭檔案中的定義,具有一定的可移植性。標準i/o庫處理很多細節。例如快取分配,以優化長度執行i/o等。標準的i/o提供了三種型別的快取。

(1)全快取:當填滿標準i/o快取後才進行實際的i/o操作。

(2)行快取:當輸入或輸出中遇到新行符時,標準i/o庫執行i/o操作。

(3)不帶快取:stderr就是了。

我們使用c庫函式的printf等一系列的c標準庫函式,而這些函式則會呼叫我們系統應用層的api函式,然後應用層api會再去呼叫核心層的api函式,最後把我們需要列印的值輸出到我們的顯示裝置上,如圖這樣的情況。

硬碟效率低:毫秒級別

記憶體:納秒級別

將內容儲存在緩衝區,降低硬碟操作

因為硬碟的效率低,不能讀寫乙個位元組都開關一次硬碟,所以應用io快取區當重新整理緩衝區或者快取區滿的時候我們一次性存進硬碟,減少硬碟的操作。

例子:如果我們需要敲乙個"hello world" 沒有緩衝區的話,我們打乙個字就會開關一次硬碟

擁有了緩衝區,就能打完這段字,我們重新整理緩衝區等方法來,一次性寫入硬碟

1.重新整理緩衝區:fflush

2.緩衝區已滿自動重新整理

3.正常關閉檔案

1)fclose

2) exit

exit()是直接將整個程式終止

return 則是隱性的呼叫exit

fd:檔案描述符 ,int型別索引

在系統層,是int型別的索引

f_pos 指讀寫指標的位置

file* 在lib庫裡面通過fd來訪問檔案

大小0~1023裡面放著檔案描述符,裡面乙個數字標識著每乙個檔案

表裡的前3為 預設前三位

0:標準輸入

1:標準輸出

2:標準錯誤

1.功能 來說能做的事情多,open/write/read等函式直接呼叫

2.簡介意義 學習os,理解os

linux系統內不適應檔名,統一使用fd檔案識別符號

頭函式:

#include

#include

#include

使用方法:

int open (const char * pathname,int flags,mode_t mode);

引數一:pathname 檔名需要開啟的檔案位址

引數二: flags 必選項 flags三個許可權為 唯讀,只寫,讀寫

引數三: mode 也表示許可權 mode_t mode (這個型別其實也是無符號整型差不多)

返回值:返回乙個新的檔案描述符(int)表示檔案在檔案描述表裡面的位置

頭函式:#include

ssize_t write(int fd, char buf,strlen(len))

ssize_t也是int型別把 前面多乙個s表示帶符號的意思 可以說是int型別換個名字吧

引數一:open函式開啟檔案後返回的檔案描述符

引數二:就是你要寫入什麼東西,什麼字串,寫入到那個檔案

引數三:這個字串的長度是多少 strlen讀到\0就結束了 所以運用要小心

返回值為寫入位元組的個數

頭函式:#include

ssize_t write(int fd, char buf,sizeof(len))

引數一:和write函式一樣 是fd是檔案描述符,就是告訴我們需要去讀檔案描述表裡面的哪乙個檔案

引數二:就是把讀到的內容,放到這個字元陣列裡面

引數三:讀多少個字元內容,到這個字元陣列裡面

返回值:讀取的字元個數是多少

第三階段知識回顧(4)

int msgget key t key int msgfls 建立訊息佇列 引數1 key t key 暗號鍵值 引數2 建立訊息佇列許可權 ipc creat 2,int msgsnd int msgid,const void msg ptr,size t msg sz,int msg 往訊息佇...

JSP 第三階段

又是元氣滿滿的一天,啦啦啦.開始正文 知識點一 out 物件 jsp的內建物件 特點 無需例項化即可使用 作用 實現資料的輸出顯示 方法 print 向頁面輸出顯示。println 向頁面輸出顯示,在原始碼裡會換行。注 頁面顯示的不會換行 知識點二 面試常問點 九大內建物件 jsp jsp已經準備好...

第三階段返程

早晨6點20起床,這是這些天來起的最早的一次,在鬧鈴響之前就醒了,證明只要心有所想是完全可以做到的,這是心理暗示的強大作用,以後要多用於其他方面。是發票改革的原因嗎?前幾次都是離店在前台直接結算開發票,現在改到財務部,週六日還不上班,給住店帶來不少麻煩,怎麼越改越不人性化呢?隨行的同事買的蘋果,每人...