検索結果
先頭5件
-
Open3
. # popen3(*cmd) -> [IO , IO , IO , Thread] (49.0) -
外部プログラム cmd を実行し、そのプロセスの標準入力、標準出力、標準エラー 出力に接続されたパイプと実行したプロセスを待つためのスレッドを 4 要素の 配列で返します。
...されたパイプと実行したプロセスを待つためのスレッドを 4 要素の
配列で返します。
require 'open3'
stdin, stdout, stderr, wait_thr = *Open3.popen3("/usr/bin/nroff -man")
@param cmd 実行するコマンドを指定します。
@return ブロックを指定し......ックを実行し、最後にパイプ
を close します。この場合はブロックの最後の式の結果を返します。
require 'open3'
Open3.popen3("read stdin; echo stdout; echo stderr >&2") {|stdin, stdout, stderr, wait_thr|
stdin.puts "stdin"
stdin.close # または......close_write
で閉じるべきです。
[UNIX系OS固有の注意] Open3 で作成した子プロセスは
wait(2) しなくてもゾンビになりません。
引数 cmd はそのまま Kernel.#spawn に渡されます。
Kernel.#spawnと同様に、引数リストの最初に環境変数をハ... -
Open3
. # popen3(*cmd) {|stdin , stdout , stderr , wait _ thr| . . . } -> () (49.0) -
外部プログラム cmd を実行し、そのプロセスの標準入力、標準出力、標準エラー 出力に接続されたパイプと実行したプロセスを待つためのスレッドを 4 要素の 配列で返します。
...されたパイプと実行したプロセスを待つためのスレッドを 4 要素の
配列で返します。
require 'open3'
stdin, stdout, stderr, wait_thr = *Open3.popen3("/usr/bin/nroff -man")
@param cmd 実行するコマンドを指定します。
@return ブロックを指定し......ックを実行し、最後にパイプ
を close します。この場合はブロックの最後の式の結果を返します。
require 'open3'
Open3.popen3("read stdin; echo stdout; echo stderr >&2") {|stdin, stdout, stderr, wait_thr|
stdin.puts "stdin"
stdin.close # または......close_write
で閉じるべきです。
[UNIX系OS固有の注意] Open3 で作成した子プロセスは
wait(2) しなくてもゾンビになりません。
引数 cmd はそのまま Kernel.#spawn に渡されます。
Kernel.#spawnと同様に、引数リストの最初に環境変数をハ... -
Timeout
. # timeout(sec , exception _ class = nil) {|i| . . . } -> object (43.0) -
ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。
...します.
@param exception_class タイムアウトした時、発生させる例外を指定します.
例 長い計算のタイムアウト
require 'timeout'
def calc_pi(min)
loop do
x = rand
y = rand
x**2 + y**2 < 1.0 ? min[0] += 1 : min[1] += 1
end
end
t =......[1], min[0]*4.0/(min[0]+min[1])
#例
#=> 417519: pi = 3.141443
例 独自の例外を発生させるタイムアウト
#!/usr/bin/env ruby
require 'timeout'
class MYError < Exception;end
begin
Timeout.timeout(5, MYError) {
sleep(30)
}
rescue MYError => err
puts "MY......ている) が終了した直後((A)の箇所)で Timeout::Error 例外があがっています。
例 timeout が割り込めない
require 'timeout'
require 'socket'
t = 0.1
start = Time.now
begin
Timeout.timeout(t) {
p TCPSocket.gethostbyname("www.ruby-lang.org")
# (A)......ッセージを指定します.省略した場合は
"execution expired" になります.
例 長い計算のタイムアウト
require 'timeout'
def calc_pi(min)
loop do
x = rand
y = rand
x**2 + y**2 < 1.0 ? min[0] += 1 : min[1] += 1
end
end
t =... -
Timeout
. # timeout(sec , exception _ class , message) {|i| . . . } -> object (43.0) -
ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。
...ッセージを指定します.省略した場合は
"execution expired" になります.
例 長い計算のタイムアウト
require 'timeout'
def calc_pi(min)
loop do
x = rand
y = rand
x**2 + y**2 < 1.0 ? min[0] += 1 : min[1] += 1
end
end
t =......[1], min[0]*4.0/(min[0]+min[1])
#例
#=> 417519: pi = 3.141443
例 独自の例外を発生させるタイムアウト
#!/usr/bin/env ruby
require 'timeout'
class MYError < Exception;end
begin
Timeout.timeout(5, MYError) {
sleep(30)
}
rescue MYError => err
puts "MY......ている) が終了した直後((A)の箇所)で Timeout::Error 例外があがっています。
例 timeout が割り込めない
require 'timeout'
require 'socket'
t = 0.1
start = Time.now
begin
Timeout.timeout(t) {
p TCPSocket.gethostbyname("www.ruby-lang.org")
# (A)... -
Syslog
. # alert(message , *arg) -> self (13.0) -
Syslog#log()のショートカットメソッド。 システムによっては定義されていないものもあります。
...す。Kernel.#sprintf と同じ形式の引数を指定します。
@param arg フォーマットされる引数です。
@raise ArgumentError 引数が1つ以上でない場合に発生します。
@raise RuntimeError syslog がopen されていない場合発生します。
例:
require 'sys......log'
Syslog.open("syslogtest") {|syslog|
syslog.crit("the sky is falling in %d seconds!",5)
}... -
Syslog
. # crit(message , *arg) -> self (13.0) -
Syslog#log()のショートカットメソッド。 システムによっては定義されていないものもあります。
...す。Kernel.#sprintf と同じ形式の引数を指定します。
@param arg フォーマットされる引数です。
@raise ArgumentError 引数が1つ以上でない場合に発生します。
@raise RuntimeError syslog がopen されていない場合発生します。
例:
require 'sys......log'
Syslog.open("syslogtest") {|syslog|
syslog.crit("the sky is falling in %d seconds!",5)
}... -
Syslog
. # debug(message , *arg) -> self (13.0) -
Syslog#log()のショートカットメソッド。 システムによっては定義されていないものもあります。
...す。Kernel.#sprintf と同じ形式の引数を指定します。
@param arg フォーマットされる引数です。
@raise ArgumentError 引数が1つ以上でない場合に発生します。
@raise RuntimeError syslog がopen されていない場合発生します。
例:
require 'sys......log'
Syslog.open("syslogtest") {|syslog|
syslog.crit("the sky is falling in %d seconds!",5)
}... -
Syslog
. # emerg(message , *arg) -> self (13.0) -
Syslog#log()のショートカットメソッド。 システムによっては定義されていないものもあります。
...す。Kernel.#sprintf と同じ形式の引数を指定します。
@param arg フォーマットされる引数です。
@raise ArgumentError 引数が1つ以上でない場合に発生します。
@raise RuntimeError syslog がopen されていない場合発生します。
例:
require 'sys......log'
Syslog.open("syslogtest") {|syslog|
syslog.crit("the sky is falling in %d seconds!",5)
}... -
Syslog
. # err(message , *arg) -> self (13.0) -
Syslog#log()のショートカットメソッド。 システムによっては定義されていないものもあります。
...す。Kernel.#sprintf と同じ形式の引数を指定します。
@param arg フォーマットされる引数です。
@raise ArgumentError 引数が1つ以上でない場合に発生します。
@raise RuntimeError syslog がopen されていない場合発生します。
例:
require 'sys......log'
Syslog.open("syslogtest") {|syslog|
syslog.crit("the sky is falling in %d seconds!",5)
}... -
Syslog
. # info(message , *arg) -> self (13.0) -
Syslog#log()のショートカットメソッド。 システムによっては定義されていないものもあります。
...す。Kernel.#sprintf と同じ形式の引数を指定します。
@param arg フォーマットされる引数です。
@raise ArgumentError 引数が1つ以上でない場合に発生します。
@raise RuntimeError syslog がopen されていない場合発生します。
例:
require 'sys......log'
Syslog.open("syslogtest") {|syslog|
syslog.crit("the sky is falling in %d seconds!",5)
}...