Mercurial > hg > octave-lyh
diff src/syscalls.cc @ 4294:755f6509bb01
[project @ 2003-01-11 04:01:53 by jwe]
author | jwe |
---|---|
date | Sat, 11 Jan 2003 04:02:04 +0000 |
parents | df5f2e433a11 |
children | c29c382a5b4b |
line wrap: on
line diff
--- a/src/syscalls.cc +++ b/src/syscalls.cc @@ -101,7 +101,7 @@ octave_value_list retval; retval(1) = std::string (); - retval(0) = -1.0; + retval(0) = -1; int nargin = args.length (); @@ -162,7 +162,7 @@ octave_value_list retval; retval(1) = std::string (); - retval(0) = -1.0; + retval(0) = -1; int nargin = args.length (); @@ -275,7 +275,7 @@ octave_value_list retval; retval(1) = std::string (); - retval(0) = -1.0; + retval(0) = -1; int nargin = args.length (); @@ -341,7 +341,7 @@ octave_value_list retval; retval(1) = std::string (); - retval(0) = -1.0; + retval(0) = -1; int nargin = args.length (); @@ -369,7 +369,7 @@ octave_value_list retval; retval(1) = std::string (); - retval(0) = -1.0; + retval(0) = -1; int nargin = args.length (); @@ -494,6 +494,58 @@ return retval; } +DEFUN (kill, args, , + "-*- textinfo -*-\n\ +@deftypefn {Built-in Function} {[@var{err}, @var{msg}] =} kill (@var{pid}, @var{sig})\n\ +Send signal @var{sig} to process @var{pid}.\n\ +\n\ +If @var{pid} is positive, then signal @var{sig} is sent to @var{pid}.\n\ +\n\ +If @var{pid} is 0, then signal @var{sig} is sent to every process\n\ +in the process group of the current process.\n\ +\n\ +If @var{pid} is -1, then signal @var{sig} is sent to every process\n\ +except process 1.\n\ +\n\ +If @var{pid} is less than -1, then signal @var{sig} is sent to every\n\ +process in the process group @var{-pid}.\n\ +\n\ +If @var{sig} is 0, then no signal is sent, but error checing is still\n\ +performed.\n\ +\n\ +Return 0 if sucessful, otherwise return -1.\n\ +@end deftypefn") +{ + octave_value_list retval; + + retval(1) = std::string (); + retval(0) = -1; + + if (args.length () == 2) + { + pid_t pid = args(0).int_value (true); + + if (! error_state) + { + int sig = args(1).int_value (true); + + if (! error_state) + { + std::string msg; + + int status = octave_syscalls::kill (pid, sig, msg); + + retval(1) = msg; + retval(0) = status; + } + } + } + else + print_usage ("kill"); + + return retval; +} + DEFUN (lstat, args, , "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {[@var{info}, @var{err}, @var{msg}] =} lstat (@var{file})\n\ @@ -513,13 +565,13 @@ if (fs) { retval(2) = std::string (); - retval(1) = 0.0; + retval(1) = 0; retval(0) = mk_stat_map (fs); } else { retval(2) = fs.error (); - retval(1) = -1.0; + retval(1) = -1; retval(0) = Matrix (); } } @@ -545,7 +597,7 @@ octave_value_list retval; retval(1) = std::string (); - retval(0) = -1.0; + retval(0) = -1; int nargin = args.length (); @@ -599,7 +651,7 @@ octave_value_list retval; retval(2) = std::string (); - retval(1) = -1.0; + retval(1) = -1; retval(0) = Matrix (); int nargin = args.length (); @@ -738,13 +790,13 @@ if (fs) { retval(2) = std::string (); - retval(1) = 0.0; + retval(1) = 0; retval(0) = octave_value (mk_stat_map (fs)); } else { retval(2) = fs.error (); - retval(1) = -1.0; + retval(1) = -1; retval(0) = Matrix (); } } @@ -768,7 +820,7 @@ octave_value_list retval; retval(1) = std::string (); - retval(0) = -1.0; + retval(0) = -1; int nargin = args.length (); @@ -838,7 +890,7 @@ octave_value_list retval; retval(1) = std::string (); - retval(0) = -1.0; + retval(0) = -1; int nargin = args.length ();