`fs.js` 中的 `process.binding('fs')` 是什么?

What is `process.binding('fs')` in `fs.js`?

我看到在 fs.js 的顶部有一个 process.binding('fs')

https://github.com/nodejs/node/blob/master/lib/fs.js#L10:

const binding = process.binding('fs');

然后,它被用作:

binding.open(pathModule._makeLong(path),
           stringToFlags(flag),
           0o666,
           req);

(在https://github.com/nodejs/node/blob/master/lib/fs.js#L303-L306)

我的问题是:

  1. process.binding() 是一个内部 API 节点用来获取对各种核心 C++ 绑定的引用。
  2. process.binding('fs') 中的
  3. 'fs' 是对 C++ 绑定 (节点源代码树中的 src/node_file.cc)的引用 fs模块。
  4. 如前所述,process.binding() 引用 C++ 绑定,因此在本例中 binding.open() 被导出 here and defined here