os: add os.endianness() function
This commit is contained in:
parent
3c91a7ae10
commit
5e4e87ade5
@ -10,6 +10,10 @@ Use `require('os')` to access this module.
|
||||
|
||||
Returns the operating system's default directory for temp files.
|
||||
|
||||
## os.endianness()
|
||||
|
||||
Returns the endianness of the CPU. Possible values are `"BE"` or `"LE"`.
|
||||
|
||||
## os.hostname()
|
||||
|
||||
Returns the hostname of the operating system.
|
||||
|
@ -22,6 +22,7 @@
|
||||
var binding = process.binding('os');
|
||||
var util = require('util');
|
||||
|
||||
exports.endianness = binding.getEndianness;
|
||||
exports.hostname = binding.getHostname;
|
||||
exports.loadavg = binding.getLoadAvg;
|
||||
exports.uptime = binding.getUptime;
|
||||
|
@ -41,6 +41,14 @@ namespace node {
|
||||
|
||||
using namespace v8;
|
||||
|
||||
static Handle<Value> GetEndianness(const Arguments& args) {
|
||||
HandleScope scope;
|
||||
int i = 1;
|
||||
bool big = (*(char *)&i) == 0;
|
||||
Local<String> endianness = String::New(big ? "BE" : "LE");
|
||||
return scope.Close(endianness);
|
||||
}
|
||||
|
||||
static Handle<Value> GetHostname(const Arguments& args) {
|
||||
HandleScope scope;
|
||||
char s[255];
|
||||
@ -242,6 +250,7 @@ static Handle<Value> GetInterfaceAddresses(const Arguments& args) {
|
||||
void OS::Initialize(v8::Handle<v8::Object> target) {
|
||||
HandleScope scope;
|
||||
|
||||
NODE_SET_METHOD(target, "getEndianness", GetEndianness);
|
||||
NODE_SET_METHOD(target, "getHostname", GetHostname);
|
||||
NODE_SET_METHOD(target, "getLoadAvg", GetLoadAvg);
|
||||
NODE_SET_METHOD(target, "getUptime", GetUptime);
|
||||
|
@ -39,6 +39,10 @@ assert.equal(os.tmpDir(), '/temp');
|
||||
process.env.TEMP = '';
|
||||
assert.equal(os.tmpDir(), t);
|
||||
|
||||
var endianness = os.endianness();
|
||||
console.log('endianness = %s', endianness);
|
||||
assert.ok(/[BL]E/.test(endianness));
|
||||
|
||||
var hostname = os.hostname();
|
||||
console.log('hostname = %s', hostname);
|
||||
assert.ok(hostname.length > 0);
|
||||
|
Loading…
x
Reference in New Issue
Block a user