るりまサーチ (Ruby 2.4.0)

最速Rubyリファレンスマニュアル検索!
96件ヒット [1-96件を表示] (0.049秒)

別のキーワード

  1. _builtin to_proc
  2. _builtin proc
  3. proc new
  4. proc curry
  5. kernel proc

モジュール

キーワード

検索結果

Process.#setproctitle(title) -> String (27310.0)

ps(1) が出力する現在実行中の Ruby スクリプトの名前を引数 title で指定した文字列に変更します。

ps(1) が出力する現在実行中の Ruby スクリプトの名前を引数 title
で指定した文字列に変更します。

OS によっては何も行われません。また、処理結果に関係なく例外は発生しませ
ん。サポートされる OS ではない場合であっても NotImplementedError
が発生する事はありません。本メソッドを実行しても $0 への影響はあ
りません。

Process.setproctitle('myapp: worker #%d' % worker_id)

本メソッドは 2.1 以降でグローバル変数を用いないで現在実行中の Ruby スク
リプトの名前を表す文字列を設定す...

Kernel.#proc -> Proc (10228.0)

与えられたブロックから手続きオブジェクト (Proc のインスタンス) を生成して返します。Proc.new に近い働きをします。

与えられたブロックから手続きオブジェクト (Proc のインスタンス)
を生成して返します。Proc.new に近い働きをします。

ブロックが指定されなければ、呼び出し元のメソッドで指定されたブロック
を手続きオブジェクトとして返します。呼び出し元のメソッドがブロックなし
で呼ばれると ArgumentError 例外が発生します。

ただし、ブロックを指定しない呼び出しは推奨されていません。呼び出し元のメソッドで指定されたブロック
を得たい場合は明示的に & 引数でうけるべきです。

@raise ArgumentError スタック上にブロックがないのにブロックを省略した呼び出しを行っ...

Kernel.#proc { ... } -> Proc (10228.0)

与えられたブロックから手続きオブジェクト (Proc のインスタンス) を生成して返します。Proc.new に近い働きをします。

与えられたブロックから手続きオブジェクト (Proc のインスタンス)
を生成して返します。Proc.new に近い働きをします。

ブロックが指定されなければ、呼び出し元のメソッドで指定されたブロック
を手続きオブジェクトとして返します。呼び出し元のメソッドがブロックなし
で呼ばれると ArgumentError 例外が発生します。

ただし、ブロックを指定しない呼び出しは推奨されていません。呼び出し元のメソッドで指定されたブロック
を得たい場合は明示的に & 引数でうけるべきです。

@raise ArgumentError スタック上にブロックがないのにブロックを省略した呼び出しを行っ...

Process.#wait2 -> [Integer, Process::Status] (9310.0)

子プロセスのうちのひとつが終了するまで待ち、終了した子プロセスの pid を返します。 wait2 は子プロセスの pid と終了ステータスを表す Process::Status オブジェクトの配列を返します。

子プロセスのうちのひとつが終了するまで待ち、終了した子プロセスの pid を返します。
wait2 は子プロセスの pid と終了ステータスを表す Process::Status オブジェクトの配列を返します。

$? に終了した子プロセスの Process::Status オブジェクトがセットされます。


@raise Errno::ECHILD 子プロセスが一つもなければ発生します。

pid = fork{ sleep 1 }
Process.wait2 #=> [2756, #<Process::Status: pid=2756,exited(0)>]

@see wait(2...

Process.#waitall -> [[Integer, Process::Status]] (9310.0)

全ての子プロセスが終了するのを待ちます。 終了した子プロセスの pid と終了ステータス (Process::Status) の配列の配列を返します。 子プロセスがいない状態でこのメソッドを呼び出すと空の配列を返します。

全ての子プロセスが終了するのを待ちます。
終了した子プロセスの pid と終了ステータス
(Process::Status) の配列の配列を返します。
子プロセスがいない状態でこのメソッドを呼び出すと空の配列を返します。

$? には最後に終了した子プロセスの Process::Status オブジェクトが設定されます。

2.times {|n|
Process.fork() { exit n }
}
p Process.waitall
#=> :Status: pid=2766,exited(1)>], [2765, #<Process::St...

絞り込み条件を変える

Process.#waitpid2(pid, flags = 0) -> [Integer, Process::Status] | nil (9310.0)

pid で指定される特定の子プロセスの終了を待ち、そのプロセスが 終了した時に pid を返します。 waitpid2 は pid と Process::Status オブジェクトの配列を返します。 ノンブロッキングモードで子プロセスがまだ終了していない時には nil を返します。

pid で指定される特定の子プロセスの終了を待ち、そのプロセスが
終了した時に pid を返します。
waitpid2 は pid と Process::Status オブジェクトの配列を返します。
ノンブロッキングモードで子プロセスがまだ終了していない時には
nil を返します。

$? に終了した子プロセスの Process::Status オブジェクトがセットされます。


@param pid 子プロセスのプロセス ID を整数で指定します。

@param flags Process モジュールの定数 Process::WNOHANG(ノンブロッキングモード)と
...

Process.#argv0 -> String (9010.0)

現在実行中の Ruby スクリプトの名前を表す文字列です。$0 を更新して も本メソッドの戻り値への影響はありません。

現在実行中の Ruby スクリプトの名前を表す文字列です。$0 を更新して
も本メソッドの戻り値への影響はありません。

本メソッドは 2.1 以降でグローバル変数を用いないで現在実行中の Ruby スク
リプトの名前を表す文字列を取得する手段として提供されました。

@see Process.#setproctitle, $0

Process.#clock_gettime(clock_id, unit=:float_second) -> Float | Integer (9010.0)

POSIX の clock_gettime() 関数の時間を返します。

POSIX の clock_gettime() 関数の時間を返します。

例:
p Process.clock_gettime(Process::CLOCK_MONOTONIC) #=> 896053.968060096

@param clock_id クロックの種類を以下の定数のいずれかで指定します。
サポートされている定数は OS やバージョンに依存します。

: Process::CLOCK_REALTIME
SUSv2 to 4, Linux 2.5.63, FreeBSD 3.0, NetBSD 2.0, OpenBSD 2.1, macOS...

Process.#daemon(nochdir = nil, noclose = nil) -> 0 (9010.0)

プロセスから制御端末を切り離し、 バックグラウンドにまわってデーモンとして動作させます。

プロセスから制御端末を切り離し、
バックグラウンドにまわってデーモンとして動作させます。

カレントディレクトリを / に移動します。
ただし nochdir に真を指定したときにはこの動作は抑制され、
カレントディレクトリは移動しません。

標準入力・標準出力・標準エラー出力を /dev/null にリダイレクトします。
ただし noclose に真を指定したときにはこの動作は抑制され、
リダイレクトは行なわれません。


@param nochdir true を指定した場合、カレントディレクトリを移動しません。

@param noclose true を指定した場合、標準入力・標準出...

Process.#detach(pid) -> Thread (9010.0)

子プロセス pid の終了を監視するスレッドを生成して返します。 生成したスレッドは子プロセスが終了した後に終了ステータス (Process::Status) を返します。 指定した子プロセスが存在しなければ即座に nil で終了します。

子プロセス pid の終了を監視するスレッドを生成して返します。
生成したスレッドは子プロセスが終了した後に終了ステータス (Process::Status) を返します。
指定した子プロセスが存在しなければ即座に nil で終了します。

@param pid 子スレッドのプロセス ID を整数で指定します。

@raise NotImplementedError メソッドが現在のプラットフォームで実装されていない場合に発生します。

pid = fork {
# child
sleep 3
}

p pid # => 7762
th...

絞り込み条件を変える

Process.#egid -> Integer (9010.0)

カレントプロセスの実効グループ ID を整数で返します。

カレントプロセスの実効グループ ID を整数で返します。

@see getegid(2)

Process.#egid=(gid) (9010.0)

カレントプロセスの実効グループ ID を gid に設定します。

カレントプロセスの実効グループ ID を gid に設定します。

動作の詳細はプラットフォームに依存します。
実効グループ ID 以外のグループ ID も変更されるかも知れません。

@param gid 実効グループ ID を整数で指定します。

@raise Errno::EXXX 権限がない場合に発生します。

@raise NotImplementedError メソッドが現在のプラットフォームで実装されていない場合に発生します。

@see Process::GID.#eid=

Process.#euid -> Integer (9010.0)

カレントプロセスの実効ユーザ ID を整数で返します。

カレントプロセスの実効ユーザ ID を整数で返します。

@see geteuid(2)

Process.#euid=(uid) (9010.0)

カレントプロセスの実効ユーザ ID を uid に設定します。

カレントプロセスの実効ユーザ ID を uid に設定します。

動作の詳細はプラットフォームに依存します。
実効ユーザ ID 以外のユーザ ID も変更されるかも知れません。

@param uid 実効ユーザ ID を整数で指定します。

@raise Errno::EXXX 権限がない場合に発生します。

@raise NotImplementedError メソッドが現在のプラットフォームで実装されていない場合に発生します。

@see Process::UID.#eid=

Process.#getpgid(pid) -> Integer (9010.0)

プロセス ID が pid であるプロセスのプロセスグループ ID を整数で返します。

プロセス ID が pid であるプロセスのプロセスグループ ID を整数で返します。

@param pid プロセス ID を整数で指定します。0 の時はカレントプロセス ID を指定したのと同じです。

@raise Errno::EXXX プロセスグループの取得に失敗した場合に発生します。

@raise NotImplementedError メソッドが現在のプラットフォームで実装されていない場合に発生します。

@see getpgid(2)

絞り込み条件を変える

Process.#getpgrp -> Integer (9010.0)

現在のプロセスのプロセスグループ ID を整数で返します。

現在のプロセスのプロセスグループ ID を整数で返します。

@raise Errno::EXXX プロセスグループの取得に失敗した場合に発生します。

@raise NotImplementedError メソッドが現在のプラットフォームで実装されていない場合に発生します。

@see getpgrp(2)

Process.#getpriority(which, who) -> Integer (9010.0)

which に従いプロセス、プロセスグループ、ユーザのいずれかの現在のプライオリティを整数で返します。

which に従いプロセス、プロセスグループ、ユーザのいずれかの現在のプライオリティを整数で返します。

@param which プライオリティの種類を次の定数で指定します。 Process::PRIO_PROCESS,
Process::PRIO_PGRP, Process::PRIO_USER。

@param who which の値にしたがってプロセス ID、プロセスグループ ID、ユーザ ID のいずれかを整数で指定します。

@raise Errno::EXXX プライオリティの取得に失敗した場合に発生します。

@raise NotImplement...

Process.#getrlimit(resource) -> [Integer] (9010.0)

カレントプロセスでのリソースの制限値を、整数の配列として返します。 返り値は、現在の制限値 cur_limit と、制限値として設定可能な最大値 max_limit の 配列 [cur_limit, max_limit] です。

カレントプロセスでのリソースの制限値を、整数の配列として返します。
返り値は、現在の制限値 cur_limit と、制限値として設定可能な最大値 max_limit の
配列 [cur_limit, max_limit] です。

それぞれの limit が Process::RLIM_INFINITY と等しい場合、リソースに制限がないことを意味します。

@param resource リソースの種類を示す定数を指定します。指定できる定数はシステムに依存します。

@raise Errno::EXXX リソースの制限値の取得が失敗した場合に発生します。

@raise NotImplem...

Process.#getsid(pid = 0) -> Integer (9010.0)

引数 pid で指定されたプロセスのセッション ID を返します。

引数 pid で指定されたプロセスのセッション ID を返します。

@param pid プロセス ID を整数で指定します。省略した場合、0 を指定した場
合は現在のプロセスの ID を指定した場合と同じ動作になります。

@raise NotImplementedError メソッドが現在のプラットフォームで実装されて
いない場合に発生します。

Process.getsid() # => 27422
Process.getsid(0) # => 274...

Process.#gid -> Integer (9010.0)

カレントプロセスの実グループ ID を返します。

カレントプロセスの実グループ ID を返します。

@see getgid(2)

絞り込み条件を変える

Process.#gid=(gid) (9010.0)

カレントプロセスの実グループ ID を gid に設定します。

カレントプロセスの実グループ ID を gid に設定します。

動作の詳細はプラットフォームに依存します。
実グループ ID 以外のグループ ID も変更されるかも知れません。

@param gid 実グループ ID を整数で指定します。

@raise Errno::EXXX 権限がない場合に発生します。

@raise NotImplementedError メソッドが現在のプラットフォームで実装されていない場合に発生します。

@see Process::GID

Process.#groups -> [Integer] (9010.0)

補助グループ ID の配列を返します(実効グループ ID を含むかも知れません)。

補助グループ ID の配列を返します(実効グループ ID を含むかも知れません)。

返される配列の最大要素数は Process.#maxgroups です。

このメソッドは getgroups(2) の単純なラッパーです。
このことは以下の特徴がプラットフォームに依存することを意味します。

* 結果がソートされているかどうか
* 結果が実効グループ ID を含むかどうか
* グループ ID が重複している可能性があるかどうか

ソート済みで重複のないグループ ID の配列の取得は以下のようにできます:

//emlist[][ruby]{
Process.groups.uniq....

Process.#groups=(gids) (9010.0)

補助グループを設定します。

補助グループを設定します。

root だけがこのメソッドを呼ぶことができます。

@param gids 補助グループ ID の配列を指定します。補助グループ ID は整数かグループ名を表す文字列です。

@raise ArgumentError 設定する補助グループ ID の数が Process.#maxgroups の
数を越えている場合に発生します。

@raise Errno::EXXX 権限がない場合に発生します。

@raise NotImplementedError メソッドが現在のプラットフォームで実装されていない場合に発生します。...

Process.#initgroups(user, group) -> [Integer] (9010.0)

user が属するグループのリストを更新し、group をそのリストに加えます。

user が属するグループのリストを更新し、group をそのリストに加えます。

このメソッドを呼ぶには root 権限が必要です。

@param user ユーザ名を表す文字列で指定します。

@param group ユーザグループ ID を整数で指定します。

@raise NotImplementedError メソッドが現在のプラットフォームで実装されていない場合に発生します。

Process.#kill(signal, pid, *rest) -> Integer (9010.0)

pid で指定されたプロセスにシグナルを送ります。signal はシグナル番号(整数)かその名前(文字列またはSymbol)で指定します。 全てのシグナル送信に成功した場合、指定した pid の総数を返します。

pid で指定されたプロセスにシグナルを送ります。signal
はシグナル番号(整数)かその名前(文字列またはSymbol)で指定します。
全てのシグナル送信に成功した場合、指定した pid の総数を返します。

@param signal シグナルをシグナル番号(整数)かその名前(文字列またはSymbol)で指定します。負の値を持つシグナル(あるいはシグナル名の前に-)を指定すると、プロセスではなくプロセスグループにシグナルを送ります。

@param pid シグナルを送りたいプロセスのプロセス ID を整数で指定します。ただし、0 以下の場合は以下のような意味になります。

* 0 ...

絞り込み条件を変える

Process.#maxgroups -> Integer (9010.0)

設定できる補助グループ ID の数を指定します。

設定できる補助グループ ID の数を指定します。

実際に返される補助グループ ID の数よりも少ない値を設定していると、
Process.#groups で例外が発生します。

@param num 整数を指定します。

@raise NotImplementedError メソッドが現在のプラットフォームで実装されていない場合に発生します。

Process.#maxgroups=(num) (9010.0)

設定できる補助グループ ID の数を指定します。

設定できる補助グループ ID の数を指定します。

実際に返される補助グループ ID の数よりも少ない値を設定していると、
Process.#groups で例外が発生します。

@param num 整数を指定します。

@raise NotImplementedError メソッドが現在のプラットフォームで実装されていない場合に発生します。

Process.#pid -> Integer (9010.0)

カレントプロセスのプロセス ID を返します。変数 $$ の値と同じです。

カレントプロセスのプロセス ID を返します。変数 $$
の値と同じです。

@see getpid(2)

Process.#ppid -> Integer (9010.0)

親プロセスのプロセス ID を返します。UNIX では実際の親プロセスが終 了した後は ppid は 1 (initの pid)になります。

親プロセスのプロセス ID を返します。UNIX では実際の親プロセスが終
了した後は ppid は 1 (initの pid)になります。

@see getppid(2)

Process.#setpgid(pid, pgrp) -> 0 (9010.0)

プロセス ID が pid であるプロセスのプロセスグループを pgrp に設定します。

プロセス ID が pid であるプロセスのプロセスグループを pgrp に設定します。

@param pid プロセス ID を整数で指定します。pid が 0 の時はカレントプロセスの ID を指定したのと同じです。
プロセスグループの設定に成功した場合は 0 を返します。

@param pgrp プロセスグループ ID を整数で指定します。pgrp が 0 の時は pid を指定したのと同じです。

@raise Errno::EXXX プロセスグループの設定に失敗した場合に発生します。

@raise NotImplementedError メソッドが現在の...

絞り込み条件を変える

Process.#setpgrp -> 0 (9010.0)

カレントプロセスの ID と同じ ID をもつプロセスグループを作成し、カレントプロセスをそのリーダーにします。 Process.#setpgid(0, 0) と同じです。

カレントプロセスの ID と同じ ID をもつプロセスグループを作成し、カレントプロセスをそのリーダーにします。
Process.#setpgid(0, 0) と同じです。

@raise Errno::EXXX プロセスグループの設定に失敗した場合に発生します。

@raise NotImplementedError メソッドが現在のプラットフォームで実装されていない場合に発生します。

fork do
p [Process.pid, Process.getpgrp]
p Process.setpgrp
p [Process.pid, Process.getpgrp]
...

Process.#setpriority(which, who, prio) -> 0 (9010.0)

プロセス、プロセスグループ、 ユーザのいずれかの現在のプライオリティを設定します 。プライオリティの設定に成功した場合は 0 を返します。

プロセス、プロセスグループ、
ユーザのいずれかの現在のプライオリティを設定します
。プライオリティの設定に成功した場合は 0 を返します。

@param which プライオリティを設定する対象の種類を以下の定数のいずれかで指定します。

* Process::PRIO_PROCESS
* Process::PRIO_PGRP
* Process::PRIO_USER

@param who which の値にしたがってプロセス ID、プロセスグループ ID、ユーザ ID のいずれかを整数で指定します。

@param prio プライオリティを -20 から 20 までの整数で設...

Process.#setrlimit(resource, cur_limit, max_limit) -> nil (9010.0)

カレントプロセスでのリソースの制限値を設定します。

カレントプロセスでのリソースの制限値を設定します。

@param resource リソースの種類を示す定数を指定します。指定できる定数はシステムに依存します。

@param limit resource によって意味が決まる制限値を表す整数もしくは定数を指定します。
soft limit と hard limit 両方にこの値が使われます。

@param cur_limit 現在の制限値(soft limit)を表す整数もしくは定数を指定します。

@param max_limit soft limit として設定可能な最大値(hard limit)を表す整...

Process.#setrlimit(resource, limit) -> nil (9010.0)

カレントプロセスでのリソースの制限値を設定します。

カレントプロセスでのリソースの制限値を設定します。

@param resource リソースの種類を示す定数を指定します。指定できる定数はシステムに依存します。

@param limit resource によって意味が決まる制限値を表す整数もしくは定数を指定します。
soft limit と hard limit 両方にこの値が使われます。

@param cur_limit 現在の制限値(soft limit)を表す整数もしくは定数を指定します。

@param max_limit soft limit として設定可能な最大値(hard limit)を表す整...

Process.#setsid -> Integer (9010.0)

新しいセッションを作成して、tty を切り離します。デーモンを簡単に作 ることができます。セッション ID を返します。

新しいセッションを作成して、tty を切り離します。デーモンを簡単に作
ることができます。セッション ID を返します。

@raise Errno::EXXX セッションの作成に失敗した場合に発生します。

@raise NotImplementedError メソッドが現在のプラットフォームで実装されていない場合に発生します。

@see setsid(2)

絞り込み条件を変える

Process.#times -> Struct::Tms (9010.0)

自身のプロセスとその子プロセスが消費したユーザ/システム CPU 時間の積算を Struct::Tms オブジェクトで返します。 時間の単位は秒で、浮動小数点数で与えられます。

自身のプロセスとその子プロセスが消費したユーザ/システム CPU 時間の積算を
Struct::Tms オブジェクトで返します。
時間の単位は秒で、浮動小数点数で与えられます。

@raise NotImplementedError メソッドが現在のプラットフォームで実装されていない場合に発生します。

@see Struct::Tms

Process.#uid -> Integer (9010.0)

プロセスの実ユーザ ID を返します。

プロセスの実ユーザ ID を返します。

@see getuid(2)

Process.#uid=(id) (9010.0)

プロセスの実ユーザ ID を id に設定します。

プロセスの実ユーザ ID を id に設定します。

動作の詳細はプラットフォームに依存します。
実ユーザ ID 以外のユーザ ID も変更されるかも知れません。

@param id 実ユーザ ID を整数で指定します。

@raise Errno::EXXX 権限がない場合に発生します。

@raise NotImplementedError メソッドが現在のプラットフォームで実装されていない場合に発生します。

@see Process::UID

Process.#wait -> Integer (9010.0)

子プロセスのうちのひとつが終了するまで待ち、終了した子プロセスの pid を返します。 wait2 は子プロセスの pid と終了ステータスを表す Process::Status オブジェクトの配列を返します。

子プロセスのうちのひとつが終了するまで待ち、終了した子プロセスの pid を返します。
wait2 は子プロセスの pid と終了ステータスを表す Process::Status オブジェクトの配列を返します。

$? に終了した子プロセスの Process::Status オブジェクトがセットされます。


@raise Errno::ECHILD 子プロセスが一つもなければ発生します。

pid = fork{ sleep 1 }
Process.wait2 #=> [2756, #<Process::Status: pid=2756,exited(0)>]

@see wait(2...

Process.#waitpid(pid, flags = 0) -> Integer | nil (9010.0)

pid で指定される特定の子プロセスの終了を待ち、そのプロセスが 終了した時に pid を返します。 waitpid2 は pid と Process::Status オブジェクトの配列を返します。 ノンブロッキングモードで子プロセスがまだ終了していない時には nil を返します。

pid で指定される特定の子プロセスの終了を待ち、そのプロセスが
終了した時に pid を返します。
waitpid2 は pid と Process::Status オブジェクトの配列を返します。
ノンブロッキングモードで子プロセスがまだ終了していない時には
nil を返します。

$? に終了した子プロセスの Process::Status オブジェクトがセットされます。


@param pid 子プロセスのプロセス ID を整数で指定します。

@param flags Process モジュールの定数 Process::WNOHANG(ノンブロッキングモード)と
...

絞り込み条件を変える

Process::GID.#change_privilege(id) -> Integer (9010.0)

実グループ ID・実効グループ ID・保存グループ ID のすべてを指定された id に変更します。 成功したら id を返します。主に root 権限を完全に放棄するために使います。

実グループ ID・実効グループ ID・保存グループ ID のすべてを指定された id に変更します。
成功したら id を返します。主に root 権限を完全に放棄するために使います。

利用できるかはプラットフォームに依存します。

@param id グループ ID を整数で指定します。

@raise ArgumentError 変更できないグループ ID があった場合に発生します。例外の発生時にこのメソッドを呼び出す前の各グループ ID の値が保存されているかどうかは保証されません。

@raise NotImplementedError メソッドが現在のプラットフォームで実装されて...

Process::GID.#eid -> Integer (9010.0)

現在のプロセスの実効グループ ID を返します。

現在のプロセスの実効グループ ID を返します。

利用できるかはプラットフォームに依存します。

@raise NotImplementedError メソッドが現在のプラットフォームで実装されていない場合に発生します。

Process.egid #=> 500

Process::GID.#eid=(id) (9010.0)

現在のプロセスの実効グループ ID を id に変更します。成功したら id を返します。

現在のプロセスの実効グループ ID を id に変更します。成功したら id を返します。

実グループ ID は変更されないことが保証されます。
保存グループ ID が変更されないかもしれないので root 権限の完全放棄には使えません。
保存グループ ID が変化するかどうかは Process::GID.#re_exchangeable?
が true を返すかどうかで決まります。
* true の環境では、実グループ ID と異なる値を設定した場合、保存グループ ID は新しい実効グループ ID の値に設定されます。
* false の環境では保存グループ ID は変化しません。
...

Process::GID.#from_name(name) -> Integer (9010.0)

引数で指定した名前の実グループ ID を返します。

引数で指定した名前の実グループ ID を返します。

Process::GID.from_name("wheel") # => 0
Process::GID.from_name("nosuchgroup") # => can't find group for nosuchgroup (ArgumentError)

@param name グループ名を指定します。

@raise ArgumentError 引数で指定したグループが存在しない場合に発生します。

Process::GID.#grant_privilege(id) -> Integer (9010.0)

現在のプロセスの実効グループ ID を id に変更します。成功したら id を返します。

現在のプロセスの実効グループ ID を id に変更します。成功したら id を返します。

実グループ ID は変更されないことが保証されます。
保存グループ ID が変更されないかもしれないので root 権限の完全放棄には使えません。
保存グループ ID が変化するかどうかは Process::GID.#re_exchangeable?
が true を返すかどうかで決まります。
* true の環境では、実グループ ID と異なる値を設定した場合、保存グループ ID は新しい実効グループ ID の値に設定されます。
* false の環境では保存グループ ID は変化しません。
...

絞り込み条件を変える

Process::GID.#re_exchange -> Integer (9010.0)

現在のプロセスの実グループ ID と実効グループ ID を入れ替えます。 保存ユーザ ID は新しい実効ユーザ ID と同じになります。 新しい実効グループ ID を返します。

現在のプロセスの実グループ ID と実効グループ ID を入れ替えます。
保存ユーザ ID は新しい実効ユーザ ID と同じになります。
新しい実効グループ ID を返します。

利用できるかはプラットフォームに依存します。

@raise NotImplementedError メソッドが現在のプラットフォームで実装されていない場合に発生します。

[Process.gid, Process.egid] #=> [0, 33]
Process::GID.re_exchange #=> 0
[Process.gid, Process.egid] #=> [...

Process::GID.#re_exchangeable? -> bool (9010.0)

現在のプラットフォームで Process::GID.#re_exchange が実装されている なら true を返します。そうでない場合に false を返します。

現在のプラットフォームで Process::GID.#re_exchange が実装されている
なら true を返します。そうでない場合に false を返します。

Process::GID.#rid -> Integer (9010.0)

現在のプロセスの実グループ ID を返します。

現在のプロセスの実グループ ID を返します。

Process.rid #=> 500

Process::GID.#sid_available? -> bool (9010.0)

現在のプラットフォームが保存グループ ID を持つなら true を返します。 そうでない場合に false を返します。

現在のプラットフォームが保存グループ ID を持つなら true を返します。
そうでない場合に false を返します。

ただし、このメソッドの値には保証がありません。
現在は次の条件のいずれかが満足される場合には
保存グループ ID を持つものと判定しています。

* setresgid() を持つ
* setegid() を持つ
* _POSIX_SAVED_IDS が真として定義されている

Process::GID.#switch -> Integer (9010.0)

実効グループ ID を一時的に変更するために使います。

実効グループ ID を一時的に変更するために使います。

実効グループ ID を実グループ ID に変更します。実効グループ ID と実グループ ID が
等しい場合には、実効グループ ID を保存グループ ID に変更します。
変更前の実効グループ ID を返します。

ブロックが指定された場合、実効グループ ID を実グループ ID へ
変更しブロックを実行します。ブロック終了時に実効グループ ID を元の
値に戻します。ブロックの実行結果を返します。

なお、保存グループ ID を持たない環境でこのメソッドを実行すると
実グループ ID が変化します。

@raise Errno::E...

絞り込み条件を変える

Process::GID.#switch {...} -> object (9010.0)

実効グループ ID を一時的に変更するために使います。

実効グループ ID を一時的に変更するために使います。

実効グループ ID を実グループ ID に変更します。実効グループ ID と実グループ ID が
等しい場合には、実効グループ ID を保存グループ ID に変更します。
変更前の実効グループ ID を返します。

ブロックが指定された場合、実効グループ ID を実グループ ID へ
変更しブロックを実行します。ブロック終了時に実効グループ ID を元の
値に戻します。ブロックの実行結果を返します。

なお、保存グループ ID を持たない環境でこのメソッドを実行すると
実グループ ID が変化します。

@raise Errno::E...

Process::Sys.#getegid -> Integer (9010.0)

システムコールの getegid(2) を呼びます。返り値を整数で返します。

システムコールの getegid(2) を呼びます。返り値を整数で返します。

@raise NotImplementedError システムコールが現在のプラットフォームで提供されていない場合に発生します。

Process::Sys.#geteuid -> Integer (9010.0)

システムコールの geteuid(2) を呼びます。返り値を整数で返します。

システムコールの geteuid(2) を呼びます。返り値を整数で返します。

@raise NotImplementedError システムコールが現在のプラットフォームで提供されていない場合に発生します。

Process::Sys.#getgid -> Integer (9010.0)

システムコールの getgid(2) を呼びます。返り値を整数で返します。

システムコールの getgid(2) を呼びます。返り値を整数で返します。

@raise NotImplementedError システムコールが現在のプラットフォームで提供されていない場合に発生します。

Process::Sys.#getuid -> Integer (9010.0)

システムコールの getuid(2) を呼びます。返り値を整数で返します。

システムコールの getuid(2) を呼びます。返り値を整数で返します。

@raise NotImplementedError システムコールが現在のプラットフォームで提供されていない場合に発生します。

絞り込み条件を変える

Process::Sys.#issetugid -> bool (9010.0)

システムコールの issetugid() を呼びます。

システムコールの issetugid() を呼びます。

プロセスが setuid もしくは setgid ビットを使って
起動されている場合に真を返します。

@raise NotImplementedError システムコールが現在のプラットフォームで提供されていない場合に発生します。

Process::Sys.#setegid(id) -> nil (9010.0)

システムコールの setegid(2) を呼びます。

システムコールの setegid(2) を呼びます。

@param id システムコールの引数を整数で指定します。

@raise NotImplementedError システムコールが現在のプラットフォームで提供されていない場合に発生します。

@raise Errno::EXXX システムコールに失敗した場合に発生します。

Process::Sys.#seteuid(id) -> nil (9010.0)

システムコールの seteuid(2) を呼びます。

システムコールの seteuid(2) を呼びます。

@param id システムコールの引数を整数で指定します。

@raise NotImplementedError システムコールが現在のプラットフォームで提供されていない場合に発生します。

@raise Errno::EXXX システムコールに失敗した場合に発生します。

Process::Sys.#setgid(id) -> nil (9010.0)

システムコールの setgid(2) を呼びます。

システムコールの setgid(2) を呼びます。

@param id システムコールの引数を整数で指定します。

@raise NotImplementedError システムコールが現在のプラットフォームで提供されていない場合に発生します。

@raise Errno::EXXX システムコールに失敗した場合に発生します。

Process::Sys.#setregid(rid, eid) -> nil (9010.0)

システムコールの setregid(2) を呼びます。

システムコールの setregid(2) を呼びます。

@param rid システムコールの引数を整数で指定します。

@param eid システムコールの引数を整数で指定します。

@raise NotImplementedError システムコールが現在のプラットフォームで提供されていない場合に発生します。

@raise Errno::EXXX システムコールに失敗した場合に発生します。

絞り込み条件を変える

Process::Sys.#setresgid(rid, eid, sid) -> nil (9010.0)

システムコールの setresgid を呼びます。

システムコールの setresgid を呼びます。

@param rid システムコールの引数を整数で指定します。

@param eid システムコールの引数を整数で指定します。

@param sid システムコールの引数を整数で指定します。

@raise NotImplementedError システムコールが現在のプラットフォームで提供されていない場合に発生します。

@raise Errno::EXXX システムコールに失敗した場合に発生します。

Process::Sys.#setresuid(rid, eid, sid) -> nil (9010.0)

システムコールの setresuid を呼びます。

システムコールの setresuid を呼びます。

@param rid システムコールの引数を整数で指定します。

@param eid システムコールの引数を整数で指定します。

@param sid システムコールの引数を整数で指定します。

@raise NotImplementedError システムコールが現在のプラットフォームで提供されていない場合に発生します。

@raise Errno::EXXX システムコールに失敗した場合に発生します。

Process::Sys.#setreuid(rid, eid) -> nil (9010.0)

システムコールの setreuid(2) を呼びます。

システムコールの setreuid(2) を呼びます。

@param rid システムコールの引数を整数で指定します。

@param eid システムコールの引数を整数で指定します。

@raise NotImplementedError システムコールが現在のプラットフォームで提供されていない場合に発生します。

@raise Errno::EXXX システムコールに失敗した場合に発生します。

Process::Sys.#setrgid(id) -> nil (9010.0)

システムコールの setrgid を呼びます。

システムコールの setrgid を呼びます。

@param id システムコールの引数を整数で指定します。

@raise NotImplementedError システムコールが現在のプラットフォームで提供されていない場合に発生します。

@raise Errno::EXXX システムコールに失敗した場合に発生します。

Process::Sys.#setruid(id) -> nil (9010.0)

システムコールの setruid を呼びます。

システムコールの setruid を呼びます。

@param id システムコールの引数を整数で指定します。

@raise NotImplementedError システムコールが現在のプラットフォームで提供されていない場合に発生します。

@raise Errno::EXXX システムコールに失敗した場合に発生します。

絞り込み条件を変える

Process::Sys.#setuid(id) -> nil (9010.0)

システムコールの setuid(2) を呼びます。

システムコールの setuid(2) を呼びます。

@raise NotImplementedError システムコールが現在のプラットフォームで提供されていない場合に発生します。

@raise Errno::EXXX システムコールに失敗した場合に発生します。

Process::UID.#change_privilege(id) -> Integer (9010.0)

実ユーザ ID・実効ユーザ ID・保存ユーザ ID のすべてを指定された id に変更します。 成功したら id を返します。主に root 権限を完全に放棄するために使います。

実ユーザ ID・実効ユーザ ID・保存ユーザ ID のすべてを指定された id に変更します。
成功したら id を返します。主に root 権限を完全に放棄するために使います。

利用できるかはプラットフォームに依存します。

@param id ユーザ ID を整数で指定します。

@raise ArgumentError 変更できないユーザ ID があった場合に発生します。例外の発生時にこのメソッドを呼び出す前の各ユーザ ID の値が保存されているかどうかは保証されません。

@raise NotImplementedError メソッドが現在のプラットフォームで実装されていない場合に...

Process::UID.#eid -> Integer (9010.0)

現在の実効ユーザ ID を返します。

現在の実効ユーザ ID を返します。

Process::UID.#eid=(id) (9010.0)

現在のプロセスの実効ユーザ ID を id に変更します。成功したら id を返します。

現在のプロセスの実効ユーザ ID を id に変更します。成功したら id を返します。

実ユーザ ID は変更されないことが保証されます。
保存ユーザ ID が変更されないかもしれないので root 権限の完全放棄には使えません。
保存ユーザ ID が変化するかどうかは Process::UID.#re_exchangeable?
が true を返すかどうかで決まります。

* true の環境では、実ユーザ ID と異なる値を設定した場合、保存ユーザ ID は新しい実効ユーザ ID の値に設定されます。
* false の環境では保存ユーザ ID は変化しません。

利用できるか...

Process::UID.#from_name(name) -> Integer (9010.0)

引数で指定した名前の実ユーザ ID を返します。

引数で指定した名前の実ユーザ ID を返します。

Process::UID.from_name("root") # => 0
Process::UID.from_name("nosuchuser") # => can't find user for nosuchuser (ArgumentError)

@param name ユーザ名を指定します。

@raise ArgumentError 引数で指定したユーザが存在しない場合に発生します。

絞り込み条件を変える

Process::UID.#grant_privilege(id) -> Integer (9010.0)

現在のプロセスの実効ユーザ ID を id に変更します。成功したら id を返します。

現在のプロセスの実効ユーザ ID を id に変更します。成功したら id を返します。

実ユーザ ID は変更されないことが保証されます。
保存ユーザ ID が変更されないかもしれないので root 権限の完全放棄には使えません。
保存ユーザ ID が変化するかどうかは Process::UID.#re_exchangeable?
が true を返すかどうかで決まります。

* true の環境では、実ユーザ ID と異なる値を設定した場合、保存ユーザ ID は新しい実効ユーザ ID の値に設定されます。
* false の環境では保存ユーザ ID は変化しません。

利用できるか...

Process::UID.#re_exchange -> Integer (9010.0)

実ユーザ ID と実効ユーザ ID とを入れ換えます。 保存ユーザ ID は新しい実効ユーザ ID と同じになります。 新しい実効ユーザ ID を返します。

実ユーザ ID と実効ユーザ ID とを入れ換えます。
保存ユーザ ID は新しい実効ユーザ ID と同じになります。
新しい実効ユーザ ID を返します。

利用できるかはプラットフォームに依存します。

@raise NotImplementedError メソッドが現在のプラットフォームで実装されていない場合に発生します。

Process::UID.#re_exchangeable? -> bool (9010.0)

Process::UID.#re_exchange が実装されているならば true を返します。そうでない場合に false を返します。

Process::UID.#re_exchange が実装されているならば true を返します。そうでない場合に false を返します。

Process::UID.#rid -> Integer (9010.0)

現在の実ユーザ ID を返します。

現在の実ユーザ ID を返します。

Process::UID.#sid_available? -> bool (9010.0)

保存ユーザ ID を持つ環境かどうかを真偽値で返します。 保存ユーザ ID を持つなら true を返します。

保存ユーザ ID を持つ環境かどうかを真偽値で返します。
保存ユーザ ID を持つなら true を返します。

ただし、このメソッドの値には保証がありません。
現在は次の条件のいずれかが満足される場合には
保存ユーザ ID を持つものと判定しています。

* setresuid() を持つ
* seteuid() を持つ
* _POSIX_SAVED_IDS が真として定義されている

絞り込み条件を変える

Process::UID.#switch -> Integer (9010.0)

実効ユーザ ID を一時的に変更するために使います。

実効ユーザ ID を一時的に変更するために使います。

実効ユーザ ID を実ユーザ ID に変更します。実効ユーザ ID と実ユーザ ID が
等しい場合には、実効ユーザ ID を保存ユーザ ID に変更します。
変更前の実効ユーザ ID を返します。

ブロックが指定された場合、実効ユーザ ID を実ユーザ ID へ
変更しブロックを実行します。ブロック終了時に実効ユーザ ID を元の
値に戻します。ブロックの実行結果を返します。

なお、保存ユーザ ID を持たない環境でこのメソッドを実行すると
実ユーザ ID が変化します。

@raise Errno::EPERM 各ユーザ ID ...

Process::UID.#switch { .... } -> object (9010.0)

実効ユーザ ID を一時的に変更するために使います。

実効ユーザ ID を一時的に変更するために使います。

実効ユーザ ID を実ユーザ ID に変更します。実効ユーザ ID と実ユーザ ID が
等しい場合には、実効ユーザ ID を保存ユーザ ID に変更します。
変更前の実効ユーザ ID を返します。

ブロックが指定された場合、実効ユーザ ID を実ユーザ ID へ
変更しブロックを実行します。ブロック終了時に実効ユーザ ID を元の
値に戻します。ブロックの実行結果を返します。

なお、保存ユーザ ID を持たない環境でこのメソッドを実行すると
実ユーザ ID が変化します。

@raise Errno::EPERM 各ユーザ ID ...

Kernel.#lambda -> Proc (928.0)

与えられたブロックから手続きオブジェクト (Proc のインスタンス) を生成して返します。Proc.new に近い働きをします。

与えられたブロックから手続きオブジェクト (Proc のインスタンス)
を生成して返します。Proc.new に近い働きをします。

ブロックが指定されなければ、呼び出し元のメソッドで指定されたブロック
を手続きオブジェクトとして返します。呼び出し元のメソッドがブロックなし
で呼ばれると ArgumentError 例外が発生します。

ただし、ブロックを指定しない呼び出しは推奨されていません。呼び出し元のメソッドで指定されたブロック
を得たい場合は明示的に & 引数でうけるべきです。

@raise ArgumentError スタック上にブロックがないのにブロックを省略した呼び出しを行っ...

Kernel.#lambda { ... } -> Proc (928.0)

与えられたブロックから手続きオブジェクト (Proc のインスタンス) を生成して返します。Proc.new に近い働きをします。

与えられたブロックから手続きオブジェクト (Proc のインスタンス)
を生成して返します。Proc.new に近い働きをします。

ブロックが指定されなければ、呼び出し元のメソッドで指定されたブロック
を手続きオブジェクトとして返します。呼び出し元のメソッドがブロックなし
で呼ばれると ArgumentError 例外が発生します。

ただし、ブロックを指定しない呼び出しは推奨されていません。呼び出し元のメソッドで指定されたブロック
を得たい場合は明示的に & 引数でうけるべきです。

@raise ArgumentError スタック上にブロックがないのにブロックを省略した呼び出しを行っ...

Kernel.#set_trace_func(proc) -> Proc (820.0)

Ruby インタプリタのイベントをトレースする Proc オブジェクトとして 指定された proc を登録します。 nil を指定するとトレースがオフになります。

Ruby インタプリタのイベントをトレースする Proc オブジェクトとして
指定された proc を登録します。 nil を指定するとトレースがオフになります。

Ruby インタプリタがプログラムを実行する過程で、メソッドの呼び出しや
式の評価などのイベントが発生する度に、以下で説明する6個の引数とともに
登録された Proc オブジェクトを実行します。

標準添付の debug、tracer、
profile はこの組み込み関数を利用して実現されています。

=== ブロックパラメータの意味

渡す Proc オブジェクトのパラメータは
proc{|event, file, lin...

絞り込み条件を変える

ObjectSpace.#define_finalizer(obj, proc) -> Array (553.0)

obj が解放されるときに実行されるファイナライザ proc を 登録します。同じオブジェクトについて複数回呼ばれたときは置き換えで はなく追加登録されます。現在のセーフレベルと proc を配列にして返します。

obj が解放されるときに実行されるファイナライザ proc を
登録します。同じオブジェクトについて複数回呼ばれたときは置き換えで
はなく追加登録されます。現在のセーフレベルと proc を配列にして返します。

ブロックを指定した場合は、そのブロックがファイナライザになります。
obj の回収時にブロックは obj の ID (BasicObject#__id__)を引数とし
て実行されます。
しかし、後述の問題があるのでブロックでファイナライザを登録するのは難しいでしょう。

@param obj ファイナライザを登録したいオブジェクトを指定します。

@param proc ファイナ...

Signal.#trap(signal) { ... } -> String | Proc | nil (424.0)

指定された割り込み signal に対するハンドラとして command を登録します。 指定したシグナルが捕捉された時には例外が発生せず、代わりに command が実行されます。 ブロックを指定した場合にはブロックをハンドラとして登録します。

指定された割り込み signal に対するハンドラとして
command を登録します。
指定したシグナルが捕捉された時には例外が発生せず、代わりに command が実行されます。
ブロックを指定した場合にはブロックをハンドラとして登録します。

trap は前回の trap で設定したハンドラを返します。
文字列を登録していた場合はそれを、
ブロックを登録していたらそれを Proc オブジェクトに変換して返します。
また何も登録されていないときも nil を返します。
ruby の仕組みの外でシグナルハンドラが登録された場合
(例えば拡張ライブラリが独自に sigaction を呼んだ場...

Signal.#trap(signal, command) -> String | Proc | nil (424.0)

指定された割り込み signal に対するハンドラとして command を登録します。 指定したシグナルが捕捉された時には例外が発生せず、代わりに command が実行されます。 ブロックを指定した場合にはブロックをハンドラとして登録します。

指定された割り込み signal に対するハンドラとして
command を登録します。
指定したシグナルが捕捉された時には例外が発生せず、代わりに command が実行されます。
ブロックを指定した場合にはブロックをハンドラとして登録します。

trap は前回の trap で設定したハンドラを返します。
文字列を登録していた場合はそれを、
ブロックを登録していたらそれを Proc オブジェクトに変換して返します。
また何も登録されていないときも nil を返します。
ruby の仕組みの外でシグナルハンドラが登録された場合
(例えば拡張ライブラリが独自に sigaction を呼んだ場...

Marshal.#load(port, proc = nil) -> object (388.0)

port からマーシャルデータを読み込んで、元のオブジェクトと同 じ状態をもつオブジェクトを生成します。

port からマーシャルデータを読み込んで、元のオブジェクトと同
じ状態をもつオブジェクトを生成します。

proc として手続きオブジェクトが与えられた場合には読み込んだ
オブジェクトを引数にその手続きを呼び出します。

str = Marshal.dump(["a", 1, 10 ** 10, 1.0, :foo])
p Marshal.load(str, proc {|obj| p obj})

=> "a"
1
10000000000
1.0
:foo
["a", 1, 10000000000, 1.0, :foo]
...

Marshal.#restore(port, proc = nil) -> object (388.0)

port からマーシャルデータを読み込んで、元のオブジェクトと同 じ状態をもつオブジェクトを生成します。

port からマーシャルデータを読み込んで、元のオブジェクトと同
じ状態をもつオブジェクトを生成します。

proc として手続きオブジェクトが与えられた場合には読み込んだ
オブジェクトを引数にその手続きを呼び出します。

str = Marshal.dump(["a", 1, 10 ** 10, 1.0, :foo])
p Marshal.load(str, proc {|obj| p obj})

=> "a"
1
10000000000
1.0
:foo
["a", 1, 10000000000, 1.0, :foo]
...

絞り込み条件を変える

Kernel.#untrace_var(varname, hook = nil) -> [String|Proc] (385.0)

グローバル変数 varname に関連付けられたフックを解除します。

グローバル変数 varname に関連付けられたフックを解除します。

hook が指定された場合にはそのフックだけを解除します。
省略するか nil を与えた場合は
varname のフックを全て解除します。

@param varname グローバル変数名を文字列か Symbol で指定します。
@param hook 文字列または Proc オブジェクトです。
@return 解除されたフックの配列を返します。

trace_var(:$v){|val| print "hookA.#{val.inspect},\n" }
block = proc{|val| print "ho...

Kernel.#trace_var(varname, hook) -> [String|Proc] (367.0)

グローバル変数 varname への代入のフックを登録します。

グローバル変数 varname への代入のフックを登録します。

ここでの「グローバル変数」は、特殊変数
(d:spec/variables#builtin を参照)も含めた `$' で始まる変数のこ
とです。

この呼び出し以降、varname で指定したグローバル変数に
値が代入されるたびに hook かブロックが評価されます。hook が Proc オブジェクトの場合
代入された値がブロック引数に渡されます。文字列の場合はRubyコードとして評価されます。

trace_var がフックするのは明示的な代入だけです。
フックは複数登録できます。

フックを解除するには、hook に n...

Kernel.#at_exit { ... } -> Proc (331.0)

与えられたブロックをインタプリタ終了時に実行します。

与えられたブロックをインタプリタ終了時に実行します。

at_exitがメソッドである点を除けば、END ブロックによる終了
処理の登録と同等です。登録した処理を取り消すことはできません。
spec/terminateも参照してください。

@return 登録した処理を Proc オブジェクトで返します。

3.times do |i|
at_exit{puts "at_exit#{i}"}
end
END{puts "END"}
at_exit{puts "at_exit"}
puts "main_end"

#=> main_end
# at...

Kernel.#trap(signal) { ... } -> String | Proc | nil (316.0)

signal で指定された割り込みにたいするハンドラとして command を登録します。Signal.#trapと同じです。

signal で指定された割り込みにたいするハンドラとして
command を登録します。Signal.#trapと同じです。

Signal.#trapの使用を推奨します。

@param signal Signal.#trap 参照
@param command Signal.#trap 参照


@see Signal.#trap,Signal

Kernel.#trap(signal, command) -> String | Proc | nil (316.0)

signal で指定された割り込みにたいするハンドラとして command を登録します。Signal.#trapと同じです。

signal で指定された割り込みにたいするハンドラとして
command を登録します。Signal.#trapと同じです。

Signal.#trapの使用を推奨します。

@param signal Signal.#trap 参照
@param command Signal.#trap 参照


@see Signal.#trap,Signal

絞り込み条件を変える

ObjectSpace.#define_finalizer(obj) {|id| ...} -> Array (253.0)

obj が解放されるときに実行されるファイナライザ proc を 登録します。同じオブジェクトについて複数回呼ばれたときは置き換えで はなく追加登録されます。現在のセーフレベルと proc を配列にして返します。

obj が解放されるときに実行されるファイナライザ proc を
登録します。同じオブジェクトについて複数回呼ばれたときは置き換えで
はなく追加登録されます。現在のセーフレベルと proc を配列にして返します。

ブロックを指定した場合は、そのブロックがファイナライザになります。
obj の回収時にブロックは obj の ID (BasicObject#__id__)を引数とし
て実行されます。
しかし、後述の問題があるのでブロックでファイナライザを登録するのは難しいでしょう。

@param obj ファイナライザを登録したいオブジェクトを指定します。

@param proc ファイナ...

Kernel.#trace_var(varname) {|new_val| .... } -> nil (67.0)

グローバル変数 varname への代入のフックを登録します。

グローバル変数 varname への代入のフックを登録します。

ここでの「グローバル変数」は、特殊変数
(d:spec/variables#builtin を参照)も含めた `$' で始まる変数のこ
とです。

この呼び出し以降、varname で指定したグローバル変数に
値が代入されるたびに hook かブロックが評価されます。hook が Proc オブジェクトの場合
代入された値がブロック引数に渡されます。文字列の場合はRubyコードとして評価されます。

trace_var がフックするのは明示的な代入だけです。
フックは複数登録できます。

フックを解除するには、hook に n...

Kernel.#trace_var(varname, hook) -> nil (67.0)

グローバル変数 varname への代入のフックを登録します。

グローバル変数 varname への代入のフックを登録します。

ここでの「グローバル変数」は、特殊変数
(d:spec/variables#builtin を参照)も含めた `$' で始まる変数のこ
とです。

この呼び出し以降、varname で指定したグローバル変数に
値が代入されるたびに hook かブロックが評価されます。hook が Proc オブジェクトの場合
代入された値がブロック引数に渡されます。文字列の場合はRubyコードとして評価されます。

trace_var がフックするのは明示的な代入だけです。
フックは複数登録できます。

フックを解除するには、hook に n...

Marshal.#dump(obj, limit = -1) -> String (64.0)

obj を指定された出力先に再帰的に出力します。

obj を指定された出力先に再帰的に出力します。

ファイルに書き出せないオブジェクトをファイルに書き出そうとすると
例外 TypeError が発生します。
ファイルに書き出せないオブジェクトは以下の通りです。

* 名前のついてない Class/Module オブジェクト。(この場
合は、例外 ArgumentError が発生します。無名クラスについて
は、Module.new を参照。)
* システムがオブジェクトの状態を保持するもの。具体的には以下のイン
スタンス。Dir, File::Stat, IO とそのサブクラス
File, Socket など。...

Marshal.#dump(obj, port, limit = -1) -> IO (64.0)

obj を指定された出力先に再帰的に出力します。

obj を指定された出力先に再帰的に出力します。

ファイルに書き出せないオブジェクトをファイルに書き出そうとすると
例外 TypeError が発生します。
ファイルに書き出せないオブジェクトは以下の通りです。

* 名前のついてない Class/Module オブジェクト。(この場
合は、例外 ArgumentError が発生します。無名クラスについて
は、Module.new を参照。)
* システムがオブジェクトの状態を保持するもの。具体的には以下のイン
スタンス。Dir, File::Stat, IO とそのサブクラス
File, Socket など。...

絞り込み条件を変える

ObjectSpace.#undefine_finalizer(obj) -> object (28.0)

obj に対するファイナライザをすべて解除します。 obj を返します。

obj に対するファイナライザをすべて解除します。
obj を返します。

@param obj ファイナライザを解除したいオブジェクトを指定します。

//emlist[例][ruby]{
class Sample
def Sample.callback
proc {
puts "finalize"
}
end

def initialize
ObjectSpace.define_finalizer(self, Sample.callback)
end

def undef
ObjectSpace.undefine_final...