tft每日頭條

 > 科技

 > 基礎系統函數教程

基礎系統函數教程

科技 更新时间:2024-07-26 08:09:48

我們都知道C語言,C語言提供了通用的函數比如fread fwrite fclose,不論你在windows linux還是其他 操作系統上,都可以使用.這就是平台無關性,所以C語言有很好的移植性.接下來我們思考一個問題,不同的操作系統windows linux,他們的設計肯定不一樣的,windows再設計之處肯定不會 考慮linux的設計,linux在設計之處也不會向微軟請教.所以問題是為什麼都可以使用标準的C函數 ?

這要從操作系統 的系統調用說起.高級的操作系統都分為用戶态和内核态,說白了用戶态就是執行用戶程序的,比如QQ 微信.而内核是 操作系統管理硬件 内存 CPU的,應用程序因為在用戶态所以無法訪問硬件,這也保證了操作系統的安全性. 但是有時候應用程序需要操作硬件,比如打開攝像頭,那怎麼辦呢.

解決辦法就是用戶程序請求操作系統打開,操作系統接收請求去打開硬件.所以真實的訪問過程不是應用程序直接訪問. 應用程序如何請求操作系統呢?這就是系統調用的功能.因為不同的操作系統管理方式 硬件訪問方式幾乎完全不同,所以不同的操作系統提供了完全不同的系統調用接口.這些接口 又稱為系統函數.

比如常見的linux下API:read write close open socket都是系統函數 ,可以完成操作系統的各種功能.windows上API 是不相同的,所以如果你直接使用這些系統函數,寫出來的代碼不具有移植性.

那怎麼辦呢?解決方法就是對系統函數封裝一層,封裝為C庫. C庫 對外提供統一的接口,不同的操作系統提供不同的C庫,但是不同的C庫對外提供相同的 API,這也就保證了你基于C庫開發的代碼在不同的操作系統上具有 很好的移植性.記住,是很好,而不是絕對的.針對一些特殊的功能,我們也是針對操作系統進行處理.

下面一張圖來解釋他們之間的關系:

基礎系統函數教程(讓你從根本上了解系統函數)1

嵌入式物聯網需要學的東西真的非常多,千萬不要學錯了路線和内容,導緻工資要不上去!

無償分享大家一個資料包,差不多150多G。裡面學習内容、面經、項目都比較新也比較全!某魚上買估計至少要好幾十。加微信領取資料

基礎系統函數教程(讓你從根本上了解系統函數)2

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved