fs.js中的`process.binding('fs')是什么?
我在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 )
我的问题是:
-
process.binding('fs')
是什么意思? - 这里是什么
fs
(我们已经在fs.js
)? - 我在哪里可以find
binding.open
的源代码? 是Javascript代码还是c / c ++代码?
-
process.binding()
是一个内部API,用于获取对各种核心C ++绑定的引用。 -
process.binding('fs')
中的process.binding('fs')
是对fs
模块的C ++绑定 (节点源树中的src/node_file.cc
process.binding('fs')
的引用。 - 如前所述,
process.binding()
引用了C ++绑定,因此在这种情况下,binding.open()
被导出到这里并在 这里定义。