22 lines
613 B
JavaScript
Raw Normal View History

2025-04-28 12:25:20 +08:00
'use strict';
const DynamicLibrary = require('./dynamic_library');
const ForeignFunction = require('./foreign_function');
const bindings = require('./bindings');
const funcs = bindings.StaticFunctions;
const ref = require('ref-napi');
const int = ref.types.int;
const intPtr = ref.refType(int);
let errno = null;
if (process.platform == 'win32') {
const _errno = DynamicLibrary('msvcrt.dll').get('_errno');
const errnoPtr = ForeignFunction(_errno, intPtr, []);
errno = function() {
return errnoPtr().deref();
};
} else {
errno = ForeignFunction(funcs._errno, 'int', []);
}
module.exports = errno;