140件ヒット
[1-100件を表示]
(0.042秒)
種類
- インスタンスメソッド (63)
- 特異メソッド (33)
- 文書 (22)
- クラス (11)
- ライブラリ (11)
クラス
- Array (19)
-
Fiddle
:: Function (22) -
Fiddle
:: Pointer (22) - String (11)
- StringScanner (22)
キーワード
- StringScanner (11)
- call (11)
- fiddle (11)
- malloc (11)
- new (22)
- pack (19)
- pack テンプレート文字列 (11)
- pos (11)
-
ruby 1
. 8 . 4 feature (11) - unpack (11)
検索結果
先頭5件
-
StringScanner
# pointer -> Integer (18107.0) -
現在のスキャンポインタのインデックスを返します。
...デックスを返します。
//emlist[例][ruby]{
require 'strscan'
s = StringScanner.new('test string')
s.pos # => 0
s.scan(/\w+/) # => "test"
s.pos # => 4
s.scan(/\w+/) # => nil
s.pos # => 4
s.scan(/\s+/) # => " "
s.pos # => 5
//}
@see StringScanner#charpos... -
Fiddle
:: Pointer . new(addr , size = 0 , free = nil) -> Fiddle :: Pointer (3230.0) -
与えられた addr が指すメモリ領域を表す Pointer オブジェクトを生成して返します。
... Pointer オブジェクトを生成して返します。
size を指定した場合、アドレス addr に確保されているメモリ領域のサイズは
size であると仮定されます。GC は free 関数を使用してメモリを解放します。
@param addr 生成する Pointer オ......ブジェクトが指すアドレスを整数で指定します。
@param size 生成する Pointer オブジェクトが指すメモリ領域のサイズを整数で指定します。
@param free GC 時に呼ばれる free 関数を Fiddle::Function オブジェクトか
整数で指定し... -
Fiddle
:: Pointer . malloc(size , free = nil) -> Fiddle :: Pointer (3224.0) -
与えられた長さ size のメモリ領域を確保し、それを表す Pointer オブジェクトを生成して返します。
...さ size のメモリ領域を確保し、それを表す Pointer オブジェクトを生成して返します。
@param size 確保したいメモリ領域のサイズを整数で指定します。
@param free GC 時に呼ばれる Pointer オブジェクトの free 関数を
Fiddle::Fun... -
StringScanner
# pos -> Integer (3007.0) -
現在のスキャンポインタのインデックスを返します。
...デックスを返します。
//emlist[例][ruby]{
require 'strscan'
s = StringScanner.new('test string')
s.pos # => 0
s.scan(/\w+/) # => "test"
s.pos # => 4
s.scan(/\w+/) # => nil
s.pos # => 4
s.scan(/\s+/) # => " "
s.pos # => 5
//}
@see StringScanner#charpos... -
Fiddle
:: Function # call(*args) -> Integer|DL :: CPtr|nil (131.0) -
関数を呼び出します。
...変換して返します。
引数の変換は以下の通りです。
: void* (つまり任意のポインタ型)
nil ならば C の NULL に変換されます
Fiddle::Pointer は保持している C ポインタに変換されます。
文字列であればその先頭ポインタにな......ます。
整数であればそれがアドレスとみなされます。
to_ptr を持っているならば、それを呼びだし Fiddle::Pointer に
変換したものを用います。
to_i を持っているならば、それを呼びだし結果の整数を
アドレスと見なし......の変換は以下の通りです。
: void
nil を返します
: (unsigned) char/short/int/long/long long
C の整数を Ruby の整数に変換します
: void*(つまり任意のポインタ型)
C のポインタを保持した Fiddle::Pointer を返します。
@param args 関数の引... -
Fiddle
:: Function . new(ptr , args , ret _ type , abi=Fiddle :: Function :: DEFAULT , name: nil) -> Fiddle :: Function (113.0) -
ptr (関数ポインタ)から Fiddle::Function オブジェクトを 生成します。
...ddle::Handle から Fiddle::Handle#sym などで取りだした
関数ポインタ(を表す整数)、もしくは関数を指している
Fiddle::Pointer を渡します。
args、ret_type で関数の引数と返り値の型を指定します。これには以下の
定数が利用できます。......trlen")
p func.ptr == h.sym("strlen") # => true
p func.call("abc") # => 3
p func.name # => "strlen"
@param ptr C の関数を指す Fiddle::Pointer オブジェクトもしくは
アドレスを表す整数
@param args 引数の型を表す配列
@param ret_type 返り値の型
@param... -
StringScanner (54.0)
-
StringScanner は文字列スキャナクラスです。 簡単に高速なスキャナを記述できます。
...ngScanner.new('This is an example string')
s.eos? #=> false
p s.scan(/\w+/) #=> "This"
p s.scan(/\w+/) #=> nil
p s.scan(/\s+/) #=> " "
p s.scan(/\s+/) #=> nil
p s.scan(/\w+/) #=> "is"
s.eos? #=> false
p s.scan(/\s+/) #=> " "
p s.scan(/\w+/) #=> "an"
p s.scan(/\s.......scan(/\w+/) #=> "example"
p s.scan(/\s+/) #=> " "
p s.scan(/\w+/) #=> "string"
s.eos? #=> true
p s.scan(/\s+/) #=> nil
p s.scan(/\w+/) #=> nil
//}
StringScanner オブジェクトはスキャンする文字列と「スキャンポインタ」のセットです。
スキャン......す。マッチしたらその後ろにポインタを進めます。
//emlist[例][ruby]{
require 'strscan'
## a string and a scan pointer ("_" = scan pointer)
s = StringScanner.new('This is an example string')
# _This is an example string s.eos? = false
s.scan(/\w+/)
# This_ is an example... -
fiddle (42.0)
-
*.dllや*.soなど、ダイナミックリンクライブラリを扱うためのライブラリです。
...id *)')
Timeval = struct( ["long tv_sec",
"long tv_usec"])
end
timeval = M::Timeval.malloc
e = M.gettimeofday(timeval, nil)
if e == 0
p timeval.tv_sec #=> 1173519547
end
上の例で、メモリの割り当てに M::Timeval.new ではなく
M::Timeval.malloc を......ブロックを呼ぶ Fiddle::Function オブジェクトです。
==== ポインタを扱う
fiddle においては、文字列/整数/Fiddle::Pointerをポインタとして
扱うことができます。
文字列をポインタ引数として渡すと文字列のメモリ領域を指す
ポ......って変換されます。
引数の変換は以下の通りです。
: void* (つまり任意のポインタ型)
nil ならば C の NULL に変換されます
Fiddle::Pointer は保持している C ポインタに変換されます。
文字列であればその先頭ポインタにな... -
Array
# pack(template) -> String (36.0) -
配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。
..."\x98\xE5\x9ER\xD2U\x00\x00p\xE5\x9ER\xD2U\x00\x00H\xE5\x9ER\xD2U\x00\x00"
[nil].pack("p") # => "\x00\x00\x00\x00\x00\x00\x00\x00"
//}
: P
構造体(固定長文字列)へのポインタ
//emlist[][ruby]{
[nil].pack("P") # => "\x00\x00\x00\x00\x00\x00\x00\x00"
["abc"].pack("P3") #......ciated pointer
//}
"p" や "P" は、nil を特別に扱い NULL
ポインタとして解釈します。(以下は、64bitマシンで一般的な結果)
//emlist[][ruby]{
[nil].pack("p") # => "\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00".unpack("p") # => [nil]
//}... -
Array
# pack(template , buffer: String . new) -> String (36.0) -
配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。
..."\x98\xE5\x9ER\xD2U\x00\x00p\xE5\x9ER\xD2U\x00\x00H\xE5\x9ER\xD2U\x00\x00"
[nil].pack("p") # => "\x00\x00\x00\x00\x00\x00\x00\x00"
//}
: P
構造体(固定長文字列)へのポインタ
//emlist[][ruby]{
[nil].pack("P") # => "\x00\x00\x00\x00\x00\x00\x00\x00"
["abc"].pack("P3") #......ciated pointer
//}
"p" や "P" は、nil を特別に扱い NULL
ポインタとして解釈します。(以下は、64bitマシンで一般的な結果)
//emlist[][ruby]{
[nil].pack("p") # => "\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00".unpack("p") # => [nil]
//}...