Node.js v18.18.2 文档


目录

OS#

稳定性:2 - 稳定

源代码: lib/os.js

node:os模块提供与操作系统相关的实用方法和属性。可以使用以下方式访问它:

const os = require('node:os'); 

os.EOL#

操作系统特定的行结束标记。

  • POSIX 上的\n
  • Windows 上的\r\n

os.availableParallelism()#

返回程序应使用的默认并行度的估计值。始终返回大于零的值。

该函数是关于 libuv 的uv_available_parallelism()的小包装。

os.arch()#

返回编译 Node.js 二进制文件的操作系统 CPU 架构。可能的值为'arm''arm64''ia32''mips''mipsel''ppc''ppc64''s390''s390x''x64'

返回值相当于process.arch

os.constants#

包含错误代码、过程信号等常用操作系统特定常量。定义的具体常量在操作系统常量中描述 。

os.cpus()#

返回一个对象数组,其中包含有关每个逻辑 CPU 核心的信息。如果没有可用的 CPU 信息,例如 /proc文件系统不可用,则该数组将为空。

每个对象包含的属性包括:

  • model <字符串>
  • speed <数字>(以 MHz 为单位)
  • times <对象>
    • user <number> CPU 在用户模式下花费的毫秒数。
    • nice <number> CPU 在良好模式下花费的毫秒数。
    • sys <number> CPU 在 sys 模式下花费的毫秒数。
    • idle <number> CPU 处于空闲模式的毫秒数。
    • irq <number> CPU 处于 irq 模式的毫秒数。
[
  {
    model: 'Intel(R) Core(TM) i7 CPU         860  @ 2.80GHz',
    speed: 2926,
    times: {
      user: 252020,
      nice: 0,
      sys: 30340,
      idle: 1070356870,
      irq: 0,
    },
  },
  {
    model: 'Intel(R) Core(TM) i7 CPU         860  @ 2.80GHz',
    speed: 2926,
    times: {
      user: 306960,
      nice: 0,
      sys: 26980,
      idle: 1071569080,
      irq: 0,
    },
  },
  {
    model: 'Intel(R) Core(TM) i7 CPU         860  @ 2.80GHz',
    speed: 2926,
    times: {
      user: 248450,
      nice: 0,
      sys: 21750,
      idle: 1070919370,
      irq: 0,
    },
  },
  {
    model: 'Intel(R) Core(TM) i7 CPU         860  @ 2.80GHz',
    speed: 2926,
    times: {
      user: 256880,
      nice: 0,
      sys: 19430,
      idle: 1070905480,
      irq: 20,
    },
  },
] 

nice值仅适用于 POSIX。在 Windows 上,所有处理器的nice值始终为 0。

os.cpus().length不应用于计算应用程序可用的并行度。为此,请使用 os.availableParallelism()

os.devNull#

空设备的平台特定文件路径。

  • Windows 上的\\.\nul
  • POSIX 上的/dev/null

os.endianness()#

返回一个字符串,标识编译 Node.js 二进制文件的 CPU 的字节顺序。

对于大端,可能的值为'BE' ;对于小端,可能的值为'LE'

os.freemem()#

以整数形式返回可用系统内存量(以字节为单位)。

os.getPriority([pid])#

  • pid <integer>要检索其调度优先级的进程 ID。 默认值: 0
  • 返回:<整数>

返回pid指定的进程的调度优先级。如果未提供pid或为0,则返回当前进程的优先级。

os.homedir()#

返回当前用户主目录的字符串路径。

在 POSIX 上,它使用$HOME环境变量(如果已定义)。否则,它使用有效的 UID来查找用户的主目录。

在 Windows 上,它使用USERPROFILE环境变量(如果已定义)。否则,它将使用当前用户的配置文件目录的路径。

os.hostname()#

以字符串形式返回操作系统的主机名。

os.loadavg()#

返回包含 1、5 和 15 分钟负载平均值的数组。

平均负载是操作系统计算的系统事件的度量,并表示为小数。

平均负载是 Unix 特有的概念。在 Windows 上,返回值始终为[0, 0, 0]

os.machine()#

以字符串形式返回机器类型,例如armarm64aarch64mipsmips64ppc64ppc64les390s390xi386i686x86_64

在 POSIX 系统上,机器类型是通过调用 uname(3)确定的。在 Windows 上,使用RtlGetVersion(),如果不可用,则使用GetVersionExW() 。请参阅 https://en.wikipedia.org/wiki/Uname#Examples了解更多信息。

os.networkInterfaces()#

返回一个对象,其中包含已分配网络地址的网络接口。

返回对象上的每个键都标识一个网络接口。关联值是一个对象数组,每个对象描述一个分配的网络地址。

分配的网络地址对象上的可用属性包括:

  • address <string>分配的 IPv4 或 IPv6 地址
  • netmask <string> IPv4 或 IPv6 网络掩码
  • family <string> IPv4IPv6
  • mac <string>网络接口的 MAC 地址
  • internal <boolean> true如果网络接口是环回接口或不可远程访问的类似接口;否则false
  • scopeid <number>数字 IPv6 范围 ID(仅当familyIPv6时指定)
  • cidr <string>分配的 IPv4 或 IPv6 地址,其路由前缀采用 CIDR 表示法。如果netmask无效,则此属性设置为null
{
  lo: [
    {
      address: '127.0.0.1',
      netmask: '255.0.0.0',
      family: 'IPv4',
      mac: '00:00:00:00:00:00',
      internal: true,
      cidr: '127.0.0.1/8'
    },
    {
      address: '::1',
      netmask: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff',
      family: 'IPv6',
      mac: '00:00:00:00:00:00',
      scopeid: 0,
      internal: true,
      cidr: '::1/128'
    }
  ],
  eth0: [
    {
      address: '192.168.1.108',
      netmask: '255.255.255.0',
      family: 'IPv4',
      mac: '01:02:03:0a:0b:0c',
      internal: false,
      cidr: '192.168.1.108/24'
    },
    {
      address: 'fe80::a00:27ff:fe4e:66a1',
      netmask: 'ffff:ffff:ffff:ffff::',
      family: 'IPv6',
      mac: '01:02:03:0a:0b:0c',
      scopeid: 1,
      internal: false,
      cidr: 'fe80::a00:27ff:fe4e:66a1/64'
    }
  ]
} 

os.platform()#

返回一个字符串,标识编译 Node.js 二进制文件的操作系统平台。该值是在编译时设置的。可能的值为'aix''darwin''freebsd''linux''openbsd''sunos''win32'

返回值相当于process.platform

如果 Node.js 是在 Android 操作系统上构建的,则也可能会返回值'android'Android 支持是实验性的

os.release()#

以字符串形式返回操作系统。

在 POSIX 系统上,操作系统版本是通过调用 uname(3)确定的。在 Windows 上,使用GetVersionExW() 。请参阅 https://en.wikipedia.org/wiki/Uname#Examples了解更多信息。

os.setPriority([pid, ]priority)#

  • pid <integer>要为其设置调度优先级的进程 ID。 默认值: 0
  • priority <整数>分配给进程的调度优先级。

尝试为pid指定的进程设置调度优先级。如果 未提供pid或为0,则使用当前进程的进程 ID。

priority输入必须是-20(高优先级)和19 (低优先级)之间的整数 。由于 Unix 优先级和 Windows 优先级之间的差异,priority映射到 os.constants.priority中的六个优先级常量之一。检索进程优先级时,此范围映射可能会导致 Windows 上的返回值略有不同。为避免混淆,请将priority设置为优先级常量之一。

在 Windows 上,将优先级设置为PRIORITY_HIGHEST需要提升的用户权限。否则设置的优先级将默默地降低为 PRIORITY_HIGH

os.tmpdir()#

以字符串形式返回操作系统的临时文件默认目录。

os.totalmem()#

以整数形式返回系统内存总量(以字节为单位)。

os.type()#

返回由uname(3)返回的操作系统名称。例如,它在 Linux 上返回'Linux' ,在 macOS 上返回 'Darwin',在 Windows 上返回 'Windows_NT'

有关在各种操作系统上运行uname(3)的输出的更多信息,请参阅https://en.wikipedia.org/wiki/Uname#Examples 。

os.uptime()#

返回系统正常运行时间(以秒为单位)。

os.userInfo([options])#

  • options <对象>
    • encoding <string>用于解释结果字符串的字符编码。如果encoding设置为'buffer',则usernameshellhomedir 值将为Buffer 默认值: 'utf8'
  • 返回:<对象>

返回有关当前有实用程序户的信息。在 POSIX 平台上,这通常是密码文件的子集。返回的对象包括usernameuidgidshellhomedir。在 Windows 上,uidgid字段为-1,而shellnull

os.userInfo()返回的homedir的值由操作系统提供。这与os.homedir()的结果不同,后者在回退到操作系统响应之前查询主目录的环境变量。

如果用户没有 usernamehomedir ,则抛出 SystemError

os.version()#

返回标识内核版本的字符串。

在 POSIX 系统上,操作系统版本是通过调用 uname(3)确定的。在 Windows 上,使用RtlGetVersion(),如果不可用,则使用GetVersionExW() 。请参阅 https://en.wikipedia.org/wiki/Uname#Examples了解更多信息。

操作系统常量#

以下常量由os.constants导出。

并非所有常量在每个操作系统上都可用。

信号常数#

以下信号常量由os.constants.signals导出。

持续的 描述
SIGHUP 发送以指示控制终端何时关闭或父进程退出。
SIGINT 发送以指示用户何时希望中断进程 ( Ctrl+ C)。
SIGQUIT 发送以指示用户何时希望终止进程并执行核心转储。
SIGILL 发送到进程以通知它已尝试执行非法、格式错误、未知或特权指令。
SIGTRAP 发生异常时发送到进程。
SIGABRT 发送到进程以请求其中止。
SIGIOT SIGABRT的同义词
SIGBUS 发送到进程以通知它已导致总线错误。
SIGFPE 发送到进程以通知它执行了非法算术运算。
SIGKILL 发送到进程以立即终止它。
SIGUSR1 SIGUSR2 发送到进程以识别用户定义的条件。
SIGSEGV 发送到进程以通知分段错误。
SIGPIPE 当进程尝试写入断开的管道时发送到该进程。
SIGALRM 当系统计时器到期时发送到进程。
SIGTERM 发送到进程以请求终止。
SIGCHLD 当子进程终止时发送到进程。
SIGSTKFLT 发送到进程以指示协处理器上的堆栈错误。
SIGCONT 发送以指示操作系统继续暂停的进程。
SIGSTOP 发送以指示操作系统停止进程。
SIGTSTP 发送到进程以请求其停止。
SIGBREAK 发送以指示用户何时希望中断进程。
SIGTTIN 当进程在后台从 TTY 读取时发送到该进程。
SIGTTOU 当进程在后台写入 TTY 时发送到该进程。
SIGURG 当套接字有紧急数据需要读取时发送到进程。
SIGXCPU 当进程超出 CPU 使用限制时发送到该进程。
SIGXFSZ 当文件增长到大于允许的最大值时发送到进程。
SIGVTALRM 当虚拟计时器到期时发送到进程。
SIGPROF 当系统计时器到时发送到进程。
SIGWINCH 当控制终端更改其大小时发送到进程。
SIGIO 当 I/O 可用时发送到进程。
SIGPOLL SIGIO的同义词
SIGLOST 当文件锁丢失时发送到进程。
SIGPWR 发送到进程以通知电源故障。
SIGINFO SIGPWR的同义词
SIGSYS 发送到进程以通知错误参数。
SIGUNUSED SIGSYS的同义词

错误常数#

以下错误常量由os.constants.errno导出。

POSIX 错误常量#
持续的 描述
E2BIG 指示参数列表比预期长。
EACCES 表明该操作没有足够的权限。
EADDRINUSE 表明该网络地址已被使用。
EADDRNOTAVAIL 表示该网络地址当前不可用。
EAFNOSUPPORT 表示不支持该网络地址族。
EAGAIN 表示没有可用数据,请稍后重试该操作。
EALREADY 指示套接字已经有一个正在进行的挂起连接。
EBADF 指示文件描述符无效。
EBADMSG 表示无效的数据消息。
EBUSY 指示设备或资源正忙。
ECANCELED 表示操作已取消。
ECHILD 表明没有子进程。
ECONNABORTED 表明网络连接已中止。
ECONNREFUSED 表明网络连接被拒绝。
ECONNRESET 表明网络连接已重置。
EDEADLK 指示已避免资源死锁。
EDESTADDRREQ 表示需要目标地址。
EDOM 表明参数超出了函数的定义域。
EDQUOT 表明已超出磁盘配额。
EEXIST 表明该文件已经存在。
EFAULT 指示无效的指针地址。
EFBIG 表明文件太大。
EHOSTUNREACH 表示主机不可达。
EIDRM 表示该标识符已被删除。
EILSEQ 表示非法字节序列。
EINPROGRESS 表示操作已经在进行中。
EINTR 表示函数调用被中断。
EINVAL 指示提供了无效参数。
EIO 指示未指定的 I/O 错误。
EISCONN 表明套接字已连接。
EISDIR 表示该路径是一个目录。
ELOOP 指示路径中符号链接的级别过多。
EMFILE 表明打开的文件太多。
EMLINK 表明文件的硬链接过多。
EMSGSIZE 表明提供的消息太长。
EMULTIHOP 表示尝试了多跳。
ENAMETOOLONG 表明文件名太长。
ENETDOWN 表明网络已关闭。
ENETRESET 表明连接已被网络中止。
ENETUNREACH 表明网络不可达。
ENFILE 表明系统中打开的文件太多。
ENOBUFS 表示没有可用的缓冲区空间。
ENODATA 指示流头读取队列上没有可用消息。
ENODEV 表明没有这样的设备。
ENOENT 表示不存在该文件或目录。
ENOEXEC 指示 exec 格式错误。
ENOLCK 表明没有可用的锁。
ENOLINK 表明链接已被切断。
ENOMEM 表明空间不足。
ENOMSG 表示没有所需类型的消息。
ENOPROTOOPT 指示给定协议不可用。
ENOSPC 表示设备上没有可用空间。
ENOSR 表示没有可用的流资源。
ENOSTR 指示给定资源不是流。
ENOSYS 表示某个功能尚未实现。
ENOTCONN 表明套接字未连接。
ENOTDIR 表示该路径不是目录。
ENOTEMPTY 表明该目录不为空。
ENOTSOCK 指示给定项目不是套接字。
ENOTSUP 表示不支持给定的操作。
ENOTTY 指示不适当的 I/O 控制操作。
ENXIO 表示没有这样的设备或地址。
EOPNOTSUPP 指示套接字上不支持某个操作。尽管 ENOTSUPEOPNOTSUPP在 Linux 上具有相同的值,但根据 POSIX.1,这些错误值应该是不同的。)
EOVERFLOW 指示值太大而无法以给定数据类型存储。
EPERM 表示不允许该操作。
EPIPE 表明管道破损。
EPROTO 表示协议错误。
EPROTONOSUPPORT 表示不支持某个协议。
EPROTOTYPE 指示套接字的协议类型错误。
ERANGE 表明结果太大。
EROFS 表示文件系统是只读的。
ESPIPE 指示无效的查找操作。
ESRCH 表明没有这样的过程。
ESTALE 指示文件句柄已过时。
ETIME 表示定时器已过期。
ETIMEDOUT 表明连接超时。
ETXTBSY 指示文本文件正忙。
EWOULDBLOCK 表明该操作将被阻塞。
EXDEV 表示链接不正确。
Windows 特定的错误常量#

以下错误代码特定于 Windows 操作系统。

持续的 描述
WSAEINTR 表示函数调用被中断。
WSAEBADF 指示无效的文件句柄。
WSAEACCES 表示没有足够的权限来完成操作。
WSAEFAULT 指示无效的指针地址。
WSAEINVAL 指示传递了无效参数。
WSAEMFILE 表明打开的文件太多。
WSAEWOULDBLOCK 表示资源暂时不可用。
WSAEINPROGRESS 表示当前正在进行某项操作。
WSAEALREADY 表示操作已经在进行中。
WSAENOTSOCK 表明该资源不是套接字。
WSAEDESTADDRREQ 表示需要目标地址。
WSAEMSGSIZE 表明消息大小太长。
WSAEPROTOTYPE 指示套接字的协议类型错误。
WSAENOPROTOOPT 指示错误的协议选项。
WSAEPROTONOSUPPORT 表示不支持该协议。
WSAESOCKTNOSUPPORT 表示不支持该套接字类型。
WSAEOPNOTSUPP 表示不支持该操作。
WSAEPFNOSUPPORT 表示不支持该协议族。
WSAEAFNOSUPPORT 表示不支持该地址族。
WSAEADDRINUSE 表明该网络地址已被使用。
WSAEADDRNOTAVAIL 表明网络地址不可用。
WSAENETDOWN 表明网络已关闭。
WSAENETUNREACH 表明网络不可达。
WSAENETRESET 表明网络连接已重置。
WSAECONNABORTED 表明连接已被中止。
WSAECONNRESET 表示连接已被对等方重置。
WSAENOBUFS 表明没有可用的缓冲区空间。
WSAEISCONN 表明套接字已经连接。
WSAENOTCONN 表明套接字未连接。
WSAESHUTDOWN 表示套接字关闭后无法发送数据。
WSAETOOMANYREFS 表明参考文献过多。
WSAETIMEDOUT 表明连接超时。
WSAECONNREFUSED 表明连接已被拒绝。
WSAELOOP 表示名称无法翻译。
WSAENAMETOOLONG 表明名称太长。
WSAEHOSTDOWN 表明网络主机已关闭。
WSAEHOSTUNREACH 表示没有到网络主机的路由。
WSAENOTEMPTY 表明该目录不为空。
WSAEPROCLIM 表明进程太多。
WSAEUSERS 表示已超出用户配额。
WSAEDQUOT 表明已超出磁盘配额。
WSAESTALE 指示陈旧的文件句柄引用。
WSAEREMOTE 表明该项目是远程的。
WSASYSNOTREADY 表明网络子系统尚未准备好。
WSAVERNOTSUPPORTED 表示winsock.dll版本超出范围。
WSANOTINITIALISED 表示尚未成功执行 WSAStartup。
WSAEDISCON 表示正在进行正常关闭。
WSAENOMORE 表示没有更多结果。
WSAECANCELLED 表示操作已被取消。
WSAEINVALIDPROCTABLE 表明过程调用表无效。
WSAEINVALIDPROVIDER 指示无效的服务提供商。
WSAEPROVIDERFAILEDINIT 表明服务提供者初始化失败。
WSASYSCALLFAILURE 表明系统调用失败。
WSASERVICE_NOT_FOUND 表明未找到服务。
WSATYPE_NOT_FOUND 表示未找到类类型。
WSA_E_NO_MORE 表示没有更多结果。
WSA_E_CANCELLED 表明呼叫已取消。
WSAEREFUSED 表示数据库查询被拒绝。

dlopen 常数#

如果操作系统上可用,则以下常量将导出到os.constants.dlopen中。请参阅dlopen(3)了解详细信息。

持续的 描述
RTLD_LAZY 执行惰性绑定。Node.js 默认设置此标志。
RTLD_NOW 在 dlopen(3) 返回之前解析库中所有未定义的符号。
RTLD_GLOBAL 库定义的符号将可用于随后加载的库的符号解析。
RTLD_LOCAL RTLD_GLOBAL相反。如果没有指定两个标志,则这是默认行为。
RTLD_DEEPBIND 使独立库优先使用自己的符号,而不是先前加载的库中的符号。

优先级常数#

以下进程调度常量由 os.constants.priority导出。

持续的 描述
PRIORITY_LOW 进程调度优先级最低。这对应于 Windows 上的IDLE_PRIORITY_CLASS ,以及所有其他平台上的良好值 19
PRIORITY_BELOW_NORMAL 进程调度优先级高于PRIORITY_LOW且低于PRIORITY_NORMAL。这对应于 Windows 上的BELOW_NORMAL_PRIORITY_CLASS ,以及所有其他平台上的良好值 10
PRIORITY_NORMAL 默认进程调度优先级。这对应于 Windows 上的NORMAL_PRIORITY_CLASS ,以及所有其他平台上的良好值 0
PRIORITY_ABOVE_NORMAL 进程调度优先级高于PRIORITY_NORMAL且低于PRIORITY_HIGH。这对应于 Windows 上的ABOVE_NORMAL_PRIORITY_CLASS ,以及所有其他平台上的良好值 -7
PRIORITY_HIGH 进程调度优先级高于PRIORITY_ABOVE_NORMAL 且低于PRIORITY_HIGHEST。这对应于 Windows 上的HIGH_PRIORITY_CLASS ,以及所有其他平台上的良好值 -14
PRIORITY_HIGHEST 进程调度优先级最高。这对应于 Windows 上的REALTIME_PRIORITY_CLASS ,以及所有其他平台上的良好值 -20

libuv 常数#

持续的 描述
UV_UDP_REUSEADDR

NodeJS中文文档为Read dev Docs平台提供托管,中文NodeJS文档均由英文版NodeJS文档翻译,版权属于nodejs.org