![](/img/trans.png)
[英]os.platform returns browser instead of actual OS - React & Electron
[英]os.platform() returns darwin instead of OSX
os.platform();
上面的JS指令返回OS的名稱。
當它在Ubuntu上運行時,它返回
'linux'
當它在Macbook上運行時,它返回
'darwin'
我想知道為什么不返回osx
, unix
或bsd
..?
darwin
是osx的分支嗎?
如何使用Node.js獲取MAC下的OS類型?
達爾文不是OSX,OSX是達爾文。
Darwin是OSX的核心,同樣,Linux是Debian,Ubuntu以及其他所有Linux發行版的核心。
因此,雖然你可以100%確定任何Apple產品(macOS,OSX,iOS,watchOS,tvOS)將返回Darwin,但從技術角度來看,假設darwin只會出現操作系統,這是不正確的,因為一些低調的開源項目像PureDarwin一樣存在,並且thoses也將返回darwin
。
但是,我不知道node.js的任何(官方)端口對於任何其他基於Darwin的操作系統而不是OSX,所以在實踐中,是的,如果你得到darwin
,你可以確信它是OSX。
Darwin是OS X的底層平台。
要獲得OS X版本,您可以通過以下命令行(或子進程)執行此操作: defaults read loginwindow SystemVersionStampAsString
或sw_vers -productVersion
要通過C / C ++獲取版本(您可以編寫綁定以便從節點訪問):
// compile with: g++ osx_ver.cc -I/Developer/Headers/FlatCarbon -framework CoreServices
#include <Gestalt.h>
#include <stdio.h>
int main() {
SInt32 majorVersion, minorVersion, bugFixVersion;
Gestalt(gestaltSystemVersionMajor, &majorVersion);
Gestalt(gestaltSystemVersionMinor, &minorVersion);
Gestalt(gestaltSystemVersionBugFix, &bugFixVersion);
printf("%d.%d.%d", majorVersion, minorVersion, bugFixVersion);
return 0;
}
注意:從OS X 10.8開始,上面顯示的Gestalt()
用法已被棄用,但它的替換似乎在OS X 10.10之前不可用,因此您可能需要使用Objective-C( [processInfo operatingSystemVersion]
)並分支API可用性就像Chromium 在這里所做的一樣。
達爾文是蘋果給OS X的原始名稱。 之所以如此,是因為它是操作系統發展中的NeXT步驟。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.