Skip to main content
Process.dlopen - node__process.d.ts - Node documentation
method Process.dlopen

Usage in Deno

```typescript import { type Process } from "node:node__process.d.ts"; ```
Process.dlopen(
module: object,
filename: string,
flags?: number,
): void
The `process.dlopen()` method allows dynamically loading shared objects. It is primarily used by `require()` to load C++ Addons, and should not be used directly, except in special cases. In other words, `require()` should be preferred over `process.dlopen()` unless there are specific reasons such as custom dlopen flags or loading from ES modules. The `flags` argument is an integer that allows to specify dlopen behavior. See the `[os.constants.dlopen](https://nodejs.org/docs/latest-v22.x/api/os.html#dlopen-constants)` documentation for details. An important requirement when calling `process.dlopen()` is that the `module` instance must be passed. Functions exported by the C++ Addon are then accessible via `module.exports`. The example below shows how to load a C++ Addon, named `local.node`, that exports a `foo` function. All the symbols are loaded before the call returns, by passing the `RTLD_NOW` constant. In this example the constant is assumed to be available. ```js import { dlopen } from 'node:process'; import { constants } from 'node:os'; import { fileURLToPath } from 'node:url'; const module = { exports: {} }; dlopen(module, fileURLToPath(new URL('local.node', import.meta.url)), constants.dlopen.RTLD_NOW); module.exports.foo(); ```

Parameters

module: object
filename: string
optional
flags: number

Return Type

void