Browse Source

add process.umask()

v0.7.4-release
Friedemann Altrock 15 years ago
committed by Ryan Dahl
parent
commit
0433d828cf
  1. 6
      doc/api.txt
  2. 14
      src/node.cc
  3. 6
      test/mjsunit/test-umask.js

6
doc/api.txt

@ -119,6 +119,11 @@ success code 0.
+process.cwd()+:: +process.cwd()+::
Returns the current working directory of the process. Returns the current working directory of the process.
+process.umask(mask)+ ::
Sets the process's file mode creation mask. Child processes inherit the mask
from the parent process.
- returns the old mask.
+process.kill(pid, signal="SIGTERM")+ :: +process.kill(pid, signal="SIGTERM")+ ::
Send a signal to a process. +pid+ is the process id and +signal+ is the Send a signal to a process. +pid+ is the process id and +signal+ is the
signal to send; for example, "SIGINT" or "SIGUSR1". See kill(2) for more signal to send; for example, "SIGINT" or "SIGUSR1". See kill(2) for more
@ -636,7 +641,6 @@ sys.puts("stats: " + JSON.stringify(stats));
- on success: returns an integer +written+ which specifies how many _bytes_ were written. - on success: returns an integer +written+ which specifies how many _bytes_ were written.
- on error: no parameters. - on error: no parameters.
+posix.read(fd, length, position, encoding)+:: +posix.read(fd, length, position, encoding)+::
Read data from the file specified by +fd+. Read data from the file specified by +fd+.

14
src/node.cc

@ -275,6 +275,19 @@ static Handle<Value> Cwd(const Arguments& args) {
return scope.Close(cwd); return scope.Close(cwd);
} }
static Handle<Value> Umask(const Arguments& args){
HandleScope scope;
if(args.Length() < 1 || !args[0]->IsInt32()) {
return ThrowException(Exception::TypeError(
String::New("argument must be an integer.")));
}
unsigned int mask = args[0]->Uint32Value();
unsigned int old = umask((mode_t)mask);
return scope.Close(Uint32::New(old));
}
v8::Handle<v8::Value> Exit(const v8::Arguments& args) { v8::Handle<v8::Value> Exit(const v8::Arguments& args) {
int r = 0; int r = 0;
if (args.Length() > 0) if (args.Length() > 0)
@ -683,6 +696,7 @@ static Local<Object> Load(int argc, char *argv[]) {
NODE_SET_METHOD(process, "reallyExit", Exit); NODE_SET_METHOD(process, "reallyExit", Exit);
NODE_SET_METHOD(process, "chdir", Chdir); NODE_SET_METHOD(process, "chdir", Chdir);
NODE_SET_METHOD(process, "cwd", Cwd); NODE_SET_METHOD(process, "cwd", Cwd);
NODE_SET_METHOD(process, "umask", Umask);
NODE_SET_METHOD(process, "dlopen", DLOpen); NODE_SET_METHOD(process, "dlopen", DLOpen);
NODE_SET_METHOD(process, "kill", Kill); NODE_SET_METHOD(process, "kill", Kill);
NODE_SET_METHOD(process, "memoryUsage", MemoryUsage); NODE_SET_METHOD(process, "memoryUsage", MemoryUsage);

6
test/mjsunit/test-umask.js

@ -0,0 +1,6 @@
process.mixin(require("./common"));
var mask = 0664;
var old = process.umask(mask);
assertEquals(true, mask === process.umask(old));
Loading…
Cancel
Save