真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

Node.jsapi中POSIX標準的示例分析

這篇文章主要介紹Node.js api中POSIX標準的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

10年的平昌網站建設經驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。營銷型網站的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調整平昌建站的顯示方式,使網站能夠適用不同顯示終端,在瀏覽器中調整網站的寬度,無論在任何一種瀏覽器上瀏覽網站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)建站從事“平昌網站設計”,“平昌網站推廣”以來,每個客戶項目都認真落實執(zhí)行。

如果你用過 Node.js 的 api,會不會覺得奇怪,為什么 api 的名字是這樣的:

比如創(chuàng)建目錄:

const fs = require('fs');

fs.mkdir('/a/b/c', { recursive: true }, (err) => {
  if (err) throw err;
});

創(chuàng)建進程:

const childProcess = require('child_process');

childProcess.fork('a/b/c.js');
childProcess.execFile('a/b/dddd');
childProcess.exec('"/path/to/test file/test.sh" arg1 arg2');
childProcess.spawn('ls', ['-lh', '/usr']);

mkdir、fork、exec、spawn 等,這些名字是怎么起的?

如果你用過 linux 命令或者 c 的函數(shù)庫,你會發(fā)現(xiàn)這些 api 在命令和 c 函數(shù)庫中也都是這個名字。

為什么會這樣呢?這些 api 是什么標準么?

沒錯,這就是 POSIX 標準

POSIX 是什么

POSIX 是 portable operating system interface (可移植的操作系統(tǒng)接口)的縮寫,x 是 unix 的意思,也就是從 unix 繼承而來。

因為不同操作系統(tǒng)如果提供的函數(shù)和系統(tǒng)調用不一樣,那么基于操作系統(tǒng)的上層應用程序的源代碼就不一樣,這就導致了一個平臺寫的代碼沒法在另一個平臺上編譯。

怎么辦呢?

如果每個操作系統(tǒng)提供的 api 一樣呢?不管操作系統(tǒng)底層怎么實現(xiàn)這些能力的,只要暴露出同樣的 api 給應用程序即可,這樣源代碼是跨平臺的,在不同的操作系統(tǒng)上編譯之后就能跑起來。

這個統(tǒng)一操作系統(tǒng)暴露的 api 的標準就是 POSIX。

可以把這個 POSIX 標準理解為 ts 里面定義的一個 interface,只要實現(xiàn)了這個 interface 的 api 就是兼容 POSIX 標準的。

POSIX 最早是 unix 擴展而來,linux 實現(xiàn)了這個 POSIX 的標準,而后來 windows 迫于壓力,也不得不兼容了 POSIX 標準,不然很多 linux 的應用程序在 windows 上就跑不起來。我們常用的 osx 也是。

所以說,POSIX 是操作系統(tǒng)向上層應用提供能力的一些標準接口,包括系統(tǒng)調用、c 函數(shù)庫、shell 命令。

所謂的標準是指被 ISO 國際標準化組織承認的,這是一個國際組織,成員遍布各個國家,是制定各種國際標準的組織。POSIX 就是 ISO/IEC 9945 標準(IEC 是電子方向的標準化組織)。其實 POSIX 是 IEEE 提出來的,這是一個美國的標準化組織,他提出的標準被 ISO 承認會成為國際標準,比如 POSIX 就是他們提出的 IEEE Std 1003 標準,現(xiàn)在被 ISO 承認,成為了 ISO/IEC 9945 標準。

POSIX 有哪些內容

我們來看一下支持 posix 的 linux 提供了哪些系統(tǒng)調用(系統(tǒng)調用指的是在內核代碼中提供的程序):

進程控制:

  • fork 創(chuàng)建一個新進程

  • execv 運行可執(zhí)行文件

  • exit 中止進程

文件讀寫

  • open 打開文件

  • close 關閉文件描述符

  • write 寫文件

  • read 讀文件

  • truncate 截斷文件

  • fsync 把文件在內存的部分寫入磁盤

文件系統(tǒng)相關

  • access 確定文件是否可存取

  • chdir 改變當前工作目錄

  • chown 改變文件的屬主或者用戶組

  • stat 取文件狀態(tài)信息

  • mkdir 創(chuàng)建目錄

  • symlink 創(chuàng)建符號鏈接

  • unlink 刪除鏈接

這些系統(tǒng)調用很多在 Node.js 里有同名的 api,shell 也有同名的命令:

比如:

fs.stats
fs.access
fs.chown
fs.mkdir

fs.open
fs.close
fs.read
fs.write

child_process.fork
child_process.exec
child_process.execFile

Node.js api 的特點

Node.js 是一個 js 的運行時,基于 v8 來注入很多提供操作系統(tǒng)能力的 api 給 js 調用,而這些 api 的設計很多都是直接用的 POSIX 標準的 api 名字,沒有做很多抽象。

Java 的 JRE(java runtime) 也提供了操作系統(tǒng)能力的抽象,但是那些 api 卻和操作系統(tǒng) POSIX 的 api 關系不大,而且融入了很多設計模式的東西,比如 io 流的裝飾器模式。

Node.js 的 api 的特點就是抽象并不多,而且很多 api 名字和 linux 命令都很像,貼近 POSIX 標準。所以學習 Node.js 的時候還是要學習下 linux 命令的,這兩者在設計上有一定的關系。

以上是“Node.js api中POSIX標準的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


本文題目:Node.jsapi中POSIX標準的示例分析
網站路徑:http://weahome.cn/article/ieoihc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部