module
{Object}filename
{string}flags
{os.constants.dlopen} 默认值:os.constants.dlopen.RTLD_LAZY
。
process.dlopen()
方法允许动态地加载共享对象。
它主要由 require()
用于加载 C++ 插件,除特殊情况外,不应直接使用。
换句话说,除非有特殊原因(例如自定义的 dlopen 标志或从 ES 模块加载),否则 [require()
] 应优先于 process.dlopen()
。
flags
参数是一个允许指定 dlopen 行为的整数。
有关详细信息,请参见 [os.constants.dlopen
] 文档。
调用 process.dlopen()
时的一个重要的要求是必须传入 module
实例。
可以通过 module.exports
访问 C++ 插件导出的函数。
下面的示例显示了如何加载导出 foo
函数的名为 local.node
的 C++ 插件。
通过传入 RTLD_NOW
常量,将在调用返回之前加载所有符号。
在此示例中,假定常量可用。
const os = require('os');
const path = require('path');
const module = { exports: {} };
process.dlopen(module, path.join(__dirname, 'local.node'),
os.constants.dlopen.RTLD_NOW);
module.exports.foo();