1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

process.c: document system(..., exception: true) [ci skip]

From: Victor Shepelev <zverok.offline@gmail.com>

[Bug #15480]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66637 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
k0kubun 2018-12-29 11:04:42 +00:00
parent 31a60184f4
commit 9f3585afad

View file

@ -4417,25 +4417,32 @@ rb_spawn(int argc, const VALUE *argv)
/* /*
* call-seq: * call-seq:
* system([env,] command... [,options]) -> true, false or nil * system([env,] command... [,options], exception: false) -> true, false or nil
* *
* Executes _command..._ in a subshell. * Executes _command..._ in a subshell.
* _command..._ is one of following forms. * _command..._ is one of following forms.
* *
* commandline : command line string which is passed to the standard shell * [<code>commandline</code>]
* cmdname, arg1, ... : command name and one or more arguments (no shell) * command line string which is passed to the standard shell
* [cmdname, argv0], arg1, ... : command name, argv[0] and zero or more arguments (no shell) * [<code>cmdname, arg1, ...</code>]
* command name and one or more arguments (no shell)
* [<code>[cmdname, argv0], arg1, ...</code>]
* command name, <code>argv[0]</code> and zero or more arguments (no shell)
* *
* system returns +true+ if the command gives zero exit status, * system returns +true+ if the command gives zero exit status,
* +false+ for non zero exit status. * +false+ for non zero exit status.
* Returns +nil+ if command execution fails. * Returns +nil+ if command execution fails.
* An error status is available in <code>$?</code>. * An error status is available in <code>$?</code>.
*
* If <code>exception: true</code> argument is passed, the method
* raises exception instead of +false+ or +nil+.
*
* The arguments are processed in the same way as * The arguments are processed in the same way as
* for <code>Kernel.spawn</code>. * for Kernel#spawn.
* *
* The hash arguments, env and options, are same as * The hash arguments, env and options, are same as
* <code>exec</code> and <code>spawn</code>. * <code>exec</code> and <code>spawn</code>.
* See <code>Kernel.spawn</code> for details. * See Kernel#spawn for details.
* *
* system("echo *") * system("echo *")
* system("echo", "*") * system("echo", "*")
@ -4445,7 +4452,19 @@ rb_spawn(int argc, const VALUE *argv)
* config.h main.rb * config.h main.rb
* * * *
* *
* See <code>Kernel.exec</code> for the standard shell. * Errors handling:
*
* system("cat nonexistent.txt")
* # => false
* system("catt nonexistent.txt")
* # => nil
*
* system("cat nonexistent.txt", exception: true)
* # RuntimeError (Command failed with exit 1: cat)
* system("catt nonexistent.txt", exception: true)
* # Errno::ENOENT (No such file or directory - catt)
*
* See Kernel#exec for the standard shell.
*/ */
static VALUE static VALUE