種類
- 文書 (65)
- インスタンスメソッド (41)
- 関数 (11)
- ライブラリ (11)
ライブラリ
- ビルトイン (30)
-
fiddle
/ import (11)
モジュール
-
Fiddle
:: Importer (11)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (11) -
NEWS for Ruby 2
. 2 . 0 (10) - Ruby用語集 (11)
- fiddle (11)
- pack (19)
- pack テンプレート文字列 (11)
-
rb
_ reserved _ word (11) -
ruby 1
. 6 feature (11) -
ruby 1
. 8 . 2 feature (11) - unpack (11)
検索結果
先頭5件
-
Fiddle
:: Importer # struct(signature) -> Class (18131.0) -
C の構造体型に対応する Ruby のクラスを構築して返します。
...れを
配列で signature に渡してデータを定義します。例えば C における
struct timeval {
long tv_sec;
long tv_usec;
};
という構造体型に対応して
Timeval = struct(["long tv_sec", "long tv_usec"])
として構造体に対応するクラスを生成しま......require 'fiddle/import'
module M
extend Fiddle::Importer
dlload "libc.so.6"
extern "int gettimeofday(void*, void*)"
Timeval = struct(["long tv_sec", "long tv_usec"])
end
time = M::Timeval.malloc
M.gettimeofday(time, Fiddle::NULL)
p time.tv_sec
p time.tv_usec... -
static struct kwtable * rb
_ reserved _ word(const char *str , unsigned int len) (138.0) -
長さ len の文字列 str が予約語であれば そのフラグテーブルを返します。str が予約語でなければ NULL を返します。
...長さ len の文字列 str が予約語であれば
そのフラグテーブルを返します。str が予約語でなければ
NULL を返します。
struct kwtable {
char *name; /* 予約語の名前 */
int id[2]; /* 0: 非修飾型シンボル... -
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (78.0) -
1.6.8から1.8.0への変更点(まとめ) * ((<1.6.8から1.8.0への変更点(まとめ)/インタプリタの変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたクラス/モジュール>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたメソッド>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加された定数>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張されたクラス/メソッド(互換性のある変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/変更されたクラス/メソッド(互換性のない変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/文法の変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/正規表現>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Marshal>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Windows 対応>)) * ((<1.6.8から1.8.0への変更点(まとめ)/廃止された(される予定の)機能>)) * ((<1.6.8から1.8.0への変更点(まとめ)/ライブラリ>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張ライブラリAPI>)) * ((<1.6.8から1.8.0への変更点(まとめ)/バグ修正>)) * ((<1.6.8から1.8.0への変更点(まとめ)/サポートプラットフォームの追加>))
...なりました。
: ((<String#insert|String/insert>)) [new]
追加
(({str[n, 0] = other})) と同じ(ただし self を返す)
=== Struct
: ((<Struct/each_pair>)) [new]
追加。
=== Symbol
: ((<Symbol/Symbol.all_symbols>)) [new]
追加 ((<ruby-dev:12921>))
=== SystemCallError......>)) [change]
: ((<String#unpack|String/unpack>)) [change]
Array#pack, String#unpack のテンプレート文字 "p", "P" は、nil と
NULLポインタの相互変換を行うようになりました((<ruby-dev:13017>))。
=== Class
: ((<Class#inherited|Class/inherited>)) [change]......str[/re/, 0] は、str[/re/] と同じです。
=== Struct
: ((<Struct>)) [compat]
Struct が適切なハッシュ値を持つよう Struct#hash, Struct#eql? が定義
されました。((<ruby-bugs:PR#758>))
: ((<aStruct#inspect|Struct>)) [compat]
出力形式が少しだけ変わり... -
NEWS for Ruby 2
. 2 . 0 (60.0) -
NEWS for Ruby 2.2.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
..._pack -> rb_integer_pack
* rb_quad_unpack -> rb_integer_unpack
* rb_read_check : access struct FILE internal. no replacement.
* rb_struct_iv_get : internal function. no replacement.
* struct rb_blocking_region_buffer : internal type. no replacement.
* rb_thread_blocking_region_be......ん中を共有しますが、
文字列の末尾だけは共有しません。結局、処理された文字列はNULL終端されない可能性があるので、
NULL終端されたCの文字列を入手したいときは`StringValueCStr()`を呼ぶ必要があります。
* rb_tracepo... -
ruby 1
. 6 feature (48.0) -
ruby 1.6 feature ruby version 1.6 は安定版です。この版での変更はバグ修正がメイン になります。
...puts md
puts MD5.hexdigest("123")
: ((<Struct>))
フリーズされた構造体オブジェクトが変更できていました。また、$SAFE =
4 のときの変更を禁止するようにしました。((<ruby-talk:19167>))
cat = Struct.new("Cat", :name, :age, :life)
a = cat.......FE == 4, which
previously wasn't.
とあるけど実際にはできません。
$SAFE = 4; def a; end
=> -:1: Insecure operation `(null)' at level 4 (SecurityError)
ruby 1.6.4 (2001-06-04) [i586-linux]
=> -:1: Insecure: can't define method (SecurityError)
ruby 1.6... -
Array
# pack(template) -> String (18.0) -
配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。
...npack("p") # => ["foo"]
"xp\xC2\x85\vV\x00\x00".unpack("p")
# => ArgumentError: no associated pointer
//}
"p" や "P" は、nil を特別に扱い NULL
ポインタとして解釈します。(以下は、64bitマシンで一般的な結果)
//emlist[][ruby]{
[nil].pack("p") # => "\x00\x00... -
Array
# pack(template , buffer: String . new) -> String (18.0) -
配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。
...npack("p") # => ["foo"]
"xp\xC2\x85\vV\x00\x00".unpack("p")
# => ArgumentError: no associated pointer
//}
"p" や "P" は、nil を特別に扱い NULL
ポインタとして解釈します。(以下は、64bitマシンで一般的な結果)
//emlist[][ruby]{
[nil].pack("p") # => "\x00\x00... -
Ruby用語集 (18.0)
-
Ruby用語集 A B C D E F G I J M N O R S Y
...長引数」という用語の
ほうが普及している。
英語の variadic は形容詞である。
: 空
: empty
Array や Hash、Struct のような要素を持つクラスでは、要素が無いことを
「空(から)」と呼ぶ。
また、String クラスでは、長......81
: 日本Rubyの会
Ruby の開発者・利用者の支援を行っている一般社団法人。
https://ruby-no-kai.org/
: ヌル文字
: null character
ASCII(ISO/IEC 646)や Unicode などに含まれる制御文字の一つ。
ASCII では 0x00 が、Unicode では U+0000 がこ......esting
制御構造、ブロックや、クラス・モジュール・メソッドなどの定義の入れ子。
===[a:ha] は
: 破壊的
: destructive
レシーバーに影響を与えるメソッドは「破壊的」であると呼ばれる。
例えば文字列オブジェクトにつ... -
String
# unpack(template) -> Array (18.0) -
Array#pack で生成された文字列を テンプレート文字列 template にしたがってアンパックし、 それらの要素を含む配列を返します。
...npack("p") # => ["foo"]
"xp\xC2\x85\vV\x00\x00".unpack("p")
# => ArgumentError: no associated pointer
//}
"p" や "P" は、nil を特別に扱い NULL
ポインタとして解釈します。(以下は、64bitマシンで一般的な結果)
//emlist[][ruby]{
[nil].pack("p") # => "\x00\x00... -
fiddle (18.0)
-
*.dllや*.soなど、ダイナミックリンクライブラリを扱うためのライブラリです。
...。
require 'fiddle/import'
module M
extend Fiddle::Importer
dlload "libc.so.6"
extern('int gettimeofday(void *, void *)')
Timeval = struct( ["long tv_sec",
"long tv_usec"])
end
timeval = M::Timeval.malloc
e = M.gettimeofday(timeval, nil)
if e == 0
p tim......類によって変換されます。
引数の変換は以下の通りです。
: void* (つまり任意のポインタ型)
nil ならば C の NULL に変換されます
Fiddle::Pointer は保持している C ポインタに変換されます。
文字列であればその先頭ポイン...