別のキーワード
キーワード
-
NEWS for Ruby 2
. 2 . 0 (11) -
NEWS for Ruby 3
. 1 . 0 (4) - NotImplementedError (12)
- Open3 (12)
- Win32ネイティブ版Rubyの互換性問題 (12)
-
at
_ exit (12) - exec (48)
- exit! (12)
- flock (12)
-
respond
_ to? (12) - trap (24)
- wait (12)
- wait2 (12)
- waitpid (12)
- waitpid2 (12)
- webrick (12)
- セキュリティモデル (2)
検索結果
先頭5件
-
Kernel
. # fork -> Integer | nil (18154.0) -
fork(2) システムコールを使ってプロセスの複製を作 ります。親プロセスでは子プロセスのプロセスIDを、子プロセスでは nil を返します。ブロックを指定して呼び出した場合には、生成し た子プロセスでブロックを評価します。
...
fork(2) システムコールを使ってプロセスの複製を作
ります。親プロセスでは子プロセスのプロセスIDを、子プロセスでは
nil を返します。ブロックを指定して呼び出した場合には、生成し
た子プロセスでブロックを評価しま......す。
fork 前に STDOUT と STDERR を IO#flush します。
@raise NotImplementedError 実行環境がこのメソッドに対応していないとき発生します。
//emlist[ブロックを指定しなかった場合][ruby]{
if child_pid = fork
puts "parent process. pid: #{Process.pid},......ss.pid}"
# => child process. pid: 81329
# 子プロセスでの処理
sleep(1)
end
//}
//emlist[ブロックを指定した場合][ruby]{
child_pid = fork do
puts "child process. pid: #{Process.pid}"
# => child process. pid: 79602
# 子プロセスでの処理
sleep(1)
end
puts "pa... -
Kernel
. # fork { . . . } -> Integer | nil (18154.0) -
fork(2) システムコールを使ってプロセスの複製を作 ります。親プロセスでは子プロセスのプロセスIDを、子プロセスでは nil を返します。ブロックを指定して呼び出した場合には、生成し た子プロセスでブロックを評価します。
...
fork(2) システムコールを使ってプロセスの複製を作
ります。親プロセスでは子プロセスのプロセスIDを、子プロセスでは
nil を返します。ブロックを指定して呼び出した場合には、生成し
た子プロセスでブロックを評価しま......す。
fork 前に STDOUT と STDERR を IO#flush します。
@raise NotImplementedError 実行環境がこのメソッドに対応していないとき発生します。
//emlist[ブロックを指定しなかった場合][ruby]{
if child_pid = fork
puts "parent process. pid: #{Process.pid},......ss.pid}"
# => child process. pid: 81329
# 子プロセスでの処理
sleep(1)
end
//}
//emlist[ブロックを指定した場合][ruby]{
child_pid = fork do
puts "child process. pid: #{Process.pid}"
# => child process. pid: 79602
# 子プロセスでの処理
sleep(1)
end
puts "pa... -
NEWS for Ruby 3
. 1 . 0 (3273.0) -
NEWS for Ruby 3.1.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...NEWS for Ruby 3.1.0
このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
それぞれのエントリーは参照情報があるため短いです。
十分な情報と共に書かれた全ての変更のリス......。単一代入では、Rubyは左から右への評価順序を使用します。このコードでは、
//emlist[][ruby]{
foo[0] = bar
//}
* 次の評価順序になります。
//emlist{
1. `foo`
2. `bar`
3. `[]=` called on the result of `foo`
//}
* Ruby 3.1.0より前は、多重......* Process
* 新規メソッド
* Process._forkが追加されました。これは fork(2) のコアメソッドです。このメソッドを直接呼び出さないでください。既存のforkメソッド(Kernel.#fork、Process.fork、IO.popen("-"))によって呼び出されます... -
NEWS for Ruby 2
. 2 . 0 (3057.0) -
NEWS for Ruby 2.2.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...NEWS for Ruby 2.2.0
このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
それぞれのエントリーは参照情報があるため短いです。
十分な情報と共に書かれた全ての変更のリス......トは ChangeLog ファイルか bugs.ruby-lang.org の issue を参照してください。
== 2.1.0 以降の変更
=== 言語仕様の変更
* nil/true/false
* nil/true/false はフリーズされました 8923
* Hash リテラル
* 後ろにコロンのあるシンボルをキー......* rb_exec_arg_init : internal function. no replacement.
* rb_exec_err : internal function. no replacement.
* rb_fork : internal function. no replacement.
* rb_fork_err : internal function. no replacement.
* rb_proc_exec_n : internal function. no replacement.
* rb_run_exec_opti... -
Win32ネイティブ版Rubyの互換性問題 (3043.0)
-
Win32ネイティブ版Rubyの互換性問題 platform/Win32-nativeRubyは、できる限りUnix版と同等の動作をするように 意図して作られていますが、 OS自体の制限などにより、いくつかの非互換性があります。また、実装上の制限・ バグもいくつか残っているようです。
...Win32ネイティブ版Rubyの互換性問題
platform/Win32-nativeRubyは、できる限りUnix版と同等の動作をするように
意図して作られていますが、
OS自体の制限などにより、いくつかの非互換性があります。また、実装上の制限・
バグもい......す。気づいたことのあるひとは
どんどん書き足してください。
== プロセスの扱い
最も重要な違いとして、fork が動作しないことがあげられます。Unix向けに書かれている
デーモン系のアプリケーションが動かないのはこ......シェル経由で外部コマンドを
起動した場合、プロセス制御などの操作を利用することはできません。
== IOとRubyスレッド併用時の問題
Win32ネイティブ版ではIO待ちはスレッドをブロックします。
現時点では適当な解決策も... -
セキュリティモデル (76.0)
-
セキュリティモデル RubyにはCGI等のプログラミングを安全に行うことを助ける為に、セキュリティ 機構が備わっています。
...セキュリティモデル
RubyにはCGI等のプログラミングを安全に行うことを助ける為に、セキュリティ
機構が備わっています。
Rubyのセキュリティモデルは「オブジェクトの汚染」と「セーフレベル」という
仕組みによってな......りたっています。
=== オブジェクトの汚染
Rubyではオブジェクトは「汚染されている」とみなされることがあります。この
しくみは大きく分けて二つの使われ方をします。
ひとつ目は、信用できない入力をもとに作られた......n File.delete File.unlink
File#truncate File#flock
および FileTest モジュールのメソッド
* IO#ioctl, IO#fcntl
* Process.fork Process.#setpgid Process.#setsid
Process.#setpriority Process.#egid= Process.#kill
* 危険なパスからの Kernel.#load
* 汚染さ... -
Kernel
. # exit!(status = false) -> () (50.0) -
Rubyプログラムの実行を即座に終了します。 status として整数が与えられた場合、その値を Ruby コマンドの終了ステータスとします。 デフォルトの終了ステータスは 1 です。
...
Rubyプログラムの実行を即座に終了します。
status として整数が与えられた場合、その値を Ruby コマンドの終了ステータスとします。
デフォルトの終了ステータスは 1 です。
status が true の場合 0、 false の場合 1 を引数に指......外処理などは一切行ないませ
ん。 Kernel.#fork の後、子プロセスを終了させる時などに用
いられます。
@param status 終了ステータスを整数か true または false で与えます。
//emlist[例][ruby]{
STDOUT.sync = true #表示前に終了しないよ......うにする
puts 'start'
begin
puts 'start1...'
exit!
ensure
puts 'end1...' #実行されない
end
puts 'end' #実行されない
#=> start
# start1...
#終了ステータス:1
//}
@see Kernel.#exit,Kernel.#abort,Kernel.#at_exit,Kernel.#fork... -
Signal
. # trap(signal) { . . . } -> String | Proc | nil (36.0) -
指定された割り込み signal に対するハンドラとして command を登録します。 指定したシグナルが捕捉された時には例外が発生せず、代わりに command が実行されます。 ブロックを指定した場合にはブロックをハンドラとして登録します。
...していたらそれを Proc オブジェクトに変換して返します。
また何も登録されていないときも nil を返します。
ruby の仕組みの外でシグナルハンドラが登録された場合
(例えば拡張ライブラリが独自に sigaction を呼んだ場合な......指定できます。
これは「プログラムの終了時」を表します。
@param command シグナルハンドラとして Ruby プログラムを表す文字列か Proc オブジェクト、また次に挙げる文字列を
指定します。nil、空文字列......NT, "EXIT") # => "DEFAULT"
Signal.trap(:INT, nil) # => "EXIT"
//emlist[例][ruby]{
Signal.trap(0, proc { puts "Terminating: #{$$}" })
Signal.trap("CLD") { puts "Child died" }
fork && Process.wait
# => Terminating: 13939
# => Child died
# => Terminating: 13907
//}
@see spec/t... -
Signal
. # trap(signal , command) -> String | Proc | nil (36.0) -
指定された割り込み signal に対するハンドラとして command を登録します。 指定したシグナルが捕捉された時には例外が発生せず、代わりに command が実行されます。 ブロックを指定した場合にはブロックをハンドラとして登録します。
...していたらそれを Proc オブジェクトに変換して返します。
また何も登録されていないときも nil を返します。
ruby の仕組みの外でシグナルハンドラが登録された場合
(例えば拡張ライブラリが独自に sigaction を呼んだ場合な......指定できます。
これは「プログラムの終了時」を表します。
@param command シグナルハンドラとして Ruby プログラムを表す文字列か Proc オブジェクト、また次に挙げる文字列を
指定します。nil、空文字列......NT, "EXIT") # => "DEFAULT"
Signal.trap(:INT, nil) # => "EXIT"
//emlist[例][ruby]{
Signal.trap(0, proc { puts "Terminating: #{$$}" })
Signal.trap("CLD") { puts "Child died" }
fork && Process.wait
# => Terminating: 13939
# => Child died
# => Terminating: 13907
//}
@see spec/t... -
Object
# respond _ to?(name , include _ all = false) -> bool (30.0) -
オブジェクトがメソッド name を持つとき真を返します。
...ことをいいます。
Windows での Process.fork や GNU/Linux での File.lchmod の
ような NotImplementedError が発生する場合は false を返します。
※ NotImplementedError が発生する場合に false を返すのは
Rubyの組み込みライブラリや標準ライブラ......リなど、C言語で実装されているメソッドのみです。
Rubyで実装されたメソッドで NotImplementedError が発生する場合は true を返します。
メソッドが定義されていない場合は、Object#respond_to_missing? を呼
び出してその結果を返しま......true か false で指定します。省略した場合
は false(含めない) を指定した事になります。
//emlist[][ruby]{
class F
def hello
"Bonjour"
end
end
class D
private
def hello
"Guten Tag"
end
end
list = [F.new,D.new]
list.each{|it| puts it...