1.庫函式和系統呼叫區別
庫函式呼叫
系統呼叫
平台移植性好
依賴於核心,不保證移植性
呼叫函式庫中的一段程式(或函式)
呼叫系統核心的服務
乙個普通功能函式的呼叫
是作業系統的乙個入口點
在使用者空間執行
在核心空間執行
它的執行時間屬於「使用者時間」
它的執行時間屬於「系統」時間
屬於過程呼叫,呼叫開銷較小
在使用者空間和核心上下文環境間切換,開銷較大
庫函式數量較多
unix中大約有90個系統呼叫,較少
典型的c函式庫呼叫:printf scanf malloc
典型的系統呼叫:fork open write
兩者間 聯絡
一般而言,跟核心功能與作業系統特性緊密相關的服務,由系統呼叫提供;
具有共通特性的功能一般需要較好的平台移植性,故而由庫函式提供。
庫函式與系統呼叫在功能上相互補充,如程序間通訊資源的管理,程序控制等功能與平台特性和核心息息相關,必須由系統呼叫來實現。
檔案 i/o操作等各平台都具有的共通功能一般採用庫函式,也便於跨平台移植。
某些情況下,庫函式與系統呼叫也有交集,
如 庫函式中的i/o操作的內部實現依然需要呼叫系統的i/o方能實現。
2.
void main( int argc, char *argv )
char *argv : argv 是乙個指標陣列,他的元素個數是argc,存放的是指向每乙個引數的指標
8 14學習筆記
學習檔案的輸入與輸出,學習的函式 fopen fclose fprintf fsanf rewind getc putc fgets fputs 關於fopen 定義 fopen in z const char filename,in z const char mode 即fopen 檔名稱,開啟模...
訓練日記8 14
今天做了幾個佇列的,真的爽額,花了差不多一上午的時間看例題,弄什麼是單調佇列,這個問題真的很嚴重。做了乙個移動窗戶問題之後,看了乙個給你乙個樹狀圖,求最大矩形面積的問題,直接做的話 o n2 而佇列能的時間的複雜度降到o n 初次接觸這種方法,感覺這個方法很溜,當然讓人也是很炸,光是求最大的矩形面積...
8 14 訓練日記
今天主要看了容斥 容斥原理 重要應用 求出乙個數n在區間 1,m 裡面有多少個數與它互質。假設資料不超過int型。實現過程分為兩步 1,求出m的質因子 並儲存在陣列裡面 2,求出區間 1,n 裡面有多少個數與m不互質。include include int p 10 儲存質因子 int型n不會超過1...