• <delect id="m4os4"><cite id="m4os4"></cite></delect>
    <nav id="m4os4"><acronym id="m4os4"></acronym></nav>
  • <input id="m4os4"></input>

    環球新資訊:linux封裝函數,libc庫和封裝函數 | 求索閣

    2022-09-29 15:08:43來源:互聯網  

    Linux系統調用這部分經常出現兩個詞:libc庫和封裝函數,不知道你是否清楚它們的含義?

    libc


    (資料圖片僅供參考)

    1)libc概念

    libc是Stantard C Library的簡稱,它是符合ANSI C標準的一個標準函數庫。libc庫提供C語言中所使用的宏,類型的定義,字符串操作符,數學計算函數以及輸入輸出函數等。正如ANSI C是C語言的標準一樣,libc只是一個函數庫標準,每個操作系統都會按照該標準對標準庫進行具體實現。通常我們所說的libc是特指某個操作系統的標準庫,比如:在Linux操作系統下所說的libc即glibc。glibc是類Unix操作系統中使用最廣泛的libc庫,它的全稱是GNU C Library.

    2)glibc

    類Unix操作系統通常將libc庫作為操作系統的一部分,它被視為操作系統與用戶程序的接口。libc庫不僅實現標準C語言中的函數,而且也包含自己所屬的函數接口。比如:在glibc庫中,既包含標準C中的fopen(),又包含類Unix系統中的open()。在類Unix操作系統中,如果缺失了標準庫,那么整個操作系統將不能正常運轉。

    3)Window下的libc

    與類Unix操作系統不同的是,Windows系統并不將libc庫作為整個核心操作系統的一部分。通常,每個編譯器都附屬自己的libc庫,這些libc既可以靜態編譯到程序中,又可以動態編譯到程序中。也就是說,應用程序依賴編譯器而不是操作系統。

    封裝函數

    在Linux系統中,glibc庫中包含許多API,大多數API都對應一個系統調用,比如:應用程序中使用的接口open(),就對應同名的系統調用open()。在glibc庫中,通過封裝例程(Wrapper Routine)將API和系統調用關聯起來。API是頭文件中所定義的函數接口,而位于glibc中的封裝例程則是對該API對應功能的具體實現。事實上,我們知道接口open()所要完成的功能是通過系統調用open()完成的,因此封裝例程要做的工作就是先將接口open()中的參數復制到相應的寄存器中,然后引發一個異常,從而系統進入內核區執行sys_open(),最后當系統調用執行完畢后,封裝例程還要將錯誤碼返回到應用程序中。

    需要注意的是,函數庫中的API和系統調用并沒有一一對應的關系。應用程序借助系統調用可以獲得內核所提供的服務,但是,像字符串操作這樣的函數并不需要借助內核來實現,因此也就不必與某個系統調用關聯。

    不過,我們并不是必須通過封裝例程才能使用系統調用,syscall()和syscallx()兩個函數可以直接調用系統調用。具體的使用方法man手冊中已經說明的很清楚了。

    相關閱讀

    精彩推薦

    相關詞

    推薦閱讀

    亚洲成a人v在线观看,五月婷婷综合激情,亚洲视频在线一区,欧美限制级在线观看
  • <delect id="m4os4"><cite id="m4os4"></cite></delect>
    <nav id="m4os4"><acronym id="m4os4"></acronym></nav>
  • <input id="m4os4"></input>
    主站蜘蛛池模板: 爱妺妺国产av网站| 超碰97人人做人人爱少妇| 最近免费中文字幕完整7| 国产在线精品一区二区不卡麻豆| 久久国产精品二国产精品| 色狠狠一区二区三区香蕉| 小12箩利洗澡无码视频网站| 亚洲综合视频网| 33333在线亚洲| 日本不卡一区二区三区四区| 午夜国产福利在线| 99re在线视频播放| 极品美女养成系统| 国产gaysexchina男同menxnxx| а√在线地址最新版| 永久免费AV无码网站YY| 国产成人精品高清在线观看99| 久久99精品久久久久久不卡 | 国产免费av片在线播放| 一边摸一边叫床一边爽| 毛茸茸性XXXX毛茸茸毛茸茸| 国产日韩精品一区二区三区 | 亚洲第一成年免费网站| 国产在线精品香蕉麻豆| 成人爽a毛片在线视频网站| 亚洲精品无码久久久久秋霞| 欧美日韩一区二区不卡三区| 打开双腿粗大噗呲噗呲h| 人人妻人人澡av天堂香蕉| 日韩在线播放全免费| 成年人网站黄色| 亚洲日韩欧洲无码av夜夜摸| 香蕉网站在线观看| 女人被男人狂躁免费视频| 亚洲伊人久久大香线蕉| 美女羞羞视频免费网站| 国产精品美女久久久久久2018 | 亚洲熟女综合色一区二区三区| 成人中文字幕一区二区三区| 成人午夜国产内射主播| 免费一级毛片在线观看|