Skip to content

Instantly share code, notes, and snippets.

@Kami
Created November 15, 2010 00:31
Show Gist options
  • Select an option

  • Save Kami/676264 to your computer and use it in GitHub Desktop.

Select an option

Save Kami/676264 to your computer and use it in GitHub Desktop.
nodejs c++ function
static Handle<Value> GetPwUid(const Arguments& args) {
HandleScope scope;
if (args.Length() < 1) {
return ThrowException(Exception::Error(
String::New("getpwuid requires 1 argument")));
}
int uid;
if (args[0]->IsNumber()) {
uid = args[0]->Int32Value();
} else {
return ThrowException(Exception::Error(
String::New("getpwuid argument must be a number")));
}
struct passwd *pwd;
if ((pwd = getpwuid(uid)) == NULL && errno != 0) {
return ThrowException(ErrnoException(errno, "getpwuid"));
}
if (pwd == NULL) {
return Null();
}
Local<Object> pwd_object = Object::New();
pwd_object->Set(String::NewSymbol("pw_name"), String::New(pwd->pw_name));
pwd_object->Set(String::NewSymbol("pw_uid"), Integer::New(pwd->pw_uid));
pwd_object->Set(String::NewSymbol("pw_gid"), Integer::New(pwd->pw_gid));
pwd_object->Set(String::NewSymbol("pw_dir"), String::New(pwd->pw_dir));
pwd_object->Set(String::NewSymbol("pw_shell"), String::New(pwd->pw_shell));
return scope.Close(pwd_object);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment