種類
- 定数 (14)
- インスタンスメソッド (7)
- ライブラリ (2)
- 特異メソッド (1)
- マクロ (1)
ライブラリ
- fiddle (13)
-
fiddle
/ import (4) - mkmf (2)
-
rbconfig
/ sizeof (1) - socket (2)
クラス
-
Fiddle
:: CStruct (1) -
Socket
:: Option (2)
モジュール
- Fiddle (13)
-
Fiddle
:: Importer (3) - Kernel (2)
- RbConfig (1)
キーワード
-
Data
_ Wrap _ Struct (1) - LIMITS (1)
-
SIZEOF
_ CHAR (1) -
SIZEOF
_ DOUBLE (1) -
SIZEOF
_ FLOAT (1) -
SIZEOF
_ INT (1) -
SIZEOF
_ INTPTR _ T (1) -
SIZEOF
_ LONG (1) -
SIZEOF
_ LONG _ LONG (1) -
SIZEOF
_ PTRDIFF _ T (1) -
SIZEOF
_ SHORT (1) -
SIZEOF
_ SIZE _ T (1) -
SIZEOF
_ SSIZE _ T (1) -
SIZEOF
_ UINTPTR _ T (1) -
SIZEOF
_ VOIDP (1) - bind (1)
- bool (1)
-
check
_ sizeof (2) -
fiddle
/ import (1) -
fiddle
/ types (1) - linger (1)
- malloc (1)
- typealias (1)
検索結果
先頭5件
-
Fiddle
:: Importer # sizeof(t) -> Integer (63442.0) -
C における sizeof(t) の値を返します。
C における sizeof(t) の値を返します。
t が文字列の場合、その文字列が表す C の型の size が返されます。
例えば、sizeof("char") は 1 を返します。
sizeof("char*") は環境によって 4 や 8 といった値を返します。
Fiddle::Importer#struct で定義した
構造体クラスを渡すと、その構造体のサイズを返します。
Fiddle::Importer#union で定義した共用体クラスも同様です。
t がクラスの場合、t が to_ptr というインスタンスメソッドを持っている
ならば t.size を返します。
それ... -
Fiddle
:: SIZEOF _ LONG _ LONG -> Integer (45952.0) -
Cでの sizeof(long long) の値
Cでの sizeof(long long) の値 -
Fiddle
:: SIZEOF _ DOUBLE -> Integer (45652.0) -
Cでの sizeof(double) の値
Cでの sizeof(double) の値 -
Fiddle
:: SIZEOF _ FLOAT -> Integer (36652.0) -
Cでの sizeof(float) の値
Cでの sizeof(float) の値 -
Fiddle
:: SIZEOF _ LONG -> Integer (36652.0) -
Cでの sizeof(long) の値
Cでの sizeof(long) の値 -
Kernel
# check _ sizeof(type , headers = nil) -> Integer | nil (27643.0) -
与えられた型のサイズを返します。
与えられた型のサイズを返します。
型 type がシステムに存在する場合は、グローバル変数 $defs に
"-DSIZEOF_type=X" を追加し、型のサイズを返します。型 type がシステムに
存在しない場合は、nil を返します。
例えば、
require 'mkmf'
check_sizeof('mystruct') # => 12
である場合、SIZEOF_MYSTRUCT=12 というプリプロセッサマクロをコンパイラに渡します。
@param type 検査したい型を指定します。
@param headers 追加のヘッダファイルを指定します。 -
Kernel
# check _ sizeof(type , headers = nil) { . . . } -> Integer | nil (27643.0) -
与えられた型のサイズを返します。
与えられた型のサイズを返します。
型 type がシステムに存在する場合は、グローバル変数 $defs に
"-DSIZEOF_type=X" を追加し、型のサイズを返します。型 type がシステムに
存在しない場合は、nil を返します。
例えば、
require 'mkmf'
check_sizeof('mystruct') # => 12
である場合、SIZEOF_MYSTRUCT=12 というプリプロセッサマクロをコンパイラに渡します。
@param type 検査したい型を指定します。
@param headers 追加のヘッダファイルを指定します。 -
Fiddle
:: SIZEOF _ CHAR -> Integer (27352.0) -
Cでの sizeof(char) の値
Cでの sizeof(char) の値 -
Fiddle
:: SIZEOF _ INT -> Integer (27352.0) -
Cでの sizeof(int) の値
Cでの sizeof(int) の値 -
Fiddle
:: SIZEOF _ INTPTR _ T -> Integer (27352.0) -
Cでの sizeof(intptr_t) の値
Cでの sizeof(intptr_t) の値 -
Fiddle
:: SIZEOF _ PTRDIFF _ T -> Integer (27352.0) -
Cでの sizeof(ptrdiff_t) の値
Cでの sizeof(ptrdiff_t) の値 -
Fiddle
:: SIZEOF _ SHORT -> Integer (27352.0) -
Cでの sizeof(short) の値
Cでの sizeof(short) の値 -
Fiddle
:: SIZEOF _ SIZE _ T -> Integer (27352.0) -
Cでの sizeof(size_t) の値
Cでの sizeof(size_t) の値 -
Fiddle
:: SIZEOF _ SSIZE _ T -> Integer (27352.0) -
Cでの sizeof(ssize_t) の値
Cでの sizeof(ssize_t) の値 -
Fiddle
:: SIZEOF _ UINTPTR _ T -> Integer (27352.0) -
Cでの sizeof(uintptr_t) の値
Cでの sizeof(uintptr_t) の値 -
Fiddle
:: SIZEOF _ VOIDP -> Integer (27352.0) -
Cでの sizeof(void*) の値
Cでの sizeof(void*) の値 -
Socket
:: Option # bool -> bool (18619.0) -
オプションのデータ(内容)を真偽値に変換して返します。
オプションのデータ(内容)を真偽値に変換して返します。
@raise TypeError dataのバイト数が不適切である(sizeof(int)と異なる)場合に発生します
@see Socket::Option#data -
Fiddle
:: CStruct . malloc -> Fiddle :: CStruct (18319.0) -
構造体のためのメモリを確保し、Fiddle::CStruct の(子孫クラスの) オブジェクトで返します。
構造体のためのメモリを確保し、Fiddle::CStruct の(子孫クラスの)
オブジェクトで返します。
C における
return (struct foo*)malloc(sizeof(struct foo));
というコードと対応していると言えます。 -
Fiddle
:: Importer # typealias(new , orig) -> () (18319.0) -
extern や struct で利用する型の別名を定義します。
extern や struct で利用する型の別名を定義します。
@param new 別名(文字列)
@param orig 別名を付けたい型の名前(文字列)
@see Fiddle::Importer#extern, Fiddle::Importer#sizeof,
Fiddle::Importer#struct, Fiddle::Importer#union -
RbConfig
:: LIMITS -> Hash (18319.0) -
Ruby インタプリタが作成された環境における、さまざまな型の値の範囲に関する情報を保持します。
Ruby インタプリタが作成された環境における、さまざまな型の値の範囲に関する情報を保持します。
下の例では、実行している Ruby インタプリタは INT_MAX が 2147483647 である環境で作成されたことを表しています。
//emlist[][ruby]{
require 'rbconfig/sizeof'
RbConfig::LIMITS['INT_MAX'] # => 2147483647
//} -
Socket
:: Option # linger -> [bool , Integer] (18319.0) -
オプションが SOL_SOCKET/SO_LINGER である場合に、 オプションのデータ(内容)を真偽値と整数のペアとして返します。
オプションが SOL_SOCKET/SO_LINGER である場合に、
オプションのデータ(内容)を真偽値と整数のペアとして返します。
@raise TypeError dataのバイト数が不適切である(sizeof(struct linger)と異なる)場合や、
level/optname が SOL_SOCKET/SO_LINGER でないに発生します
@see Socket::Option#data -
fiddle
/ import (18055.0) -
fiddle ライブラリのための高レベルインターフェースを提供するライブラリです。
fiddle ライブラリのための高レベルインターフェースを提供するライブラリです。
通常は fiddle ライブラリを使わずこの fiddle/import ライブラリを使います。
主な使い方は fiddle も参照してください。
=== 高度な使用法
==== ○○の配列を関数に渡したい
例えば与えられた長さ len の double の配列の和を計算する関数
double sum(double *arry, int len);
があったとします。これを呼び出したい場合は以下のように Array#pack を使用します。
require 'fiddle/import'
m... -
fiddle
/ types (18037.0) -
C の型の別名を定義するライブラリです。
C の型の別名を定義するライブラリです。
Fiddle::Win32Types や Fiddle::BasicTypes を Module#include する
ことで、Fiddle::Importer#extern や Fiddle::Importer#struct で
利用できる型が増えます。内部で Fiddle::Importer#typealias を
呼び出しています。
実装の問題があるため、 Fiddle::Importer#dlload を呼びだしてから
include してください。
例
require 'fiddle/import'
require 'fiddl... -
Fiddle
:: Importer # bind(signature , *opts) { . . . } -> Fiddle :: Function (9355.0) -
Ruby のブロックを C の関数で wrap し、その関数をモジュールに インポートします。
Ruby のブロックを C の関数で wrap し、その関数をモジュールに
インポートします。
これでインポートされた関数はモジュール関数として定義されます。
また、Fiddle::Importer#[] で Fiddle::Function オブジェクトとして
取り出すことができます。
signature で関数の名前とシネグチャを指定します。例えば
"int compare(void*, void*)" のように指定します。
opts には :stdcall もしくは :cdecl を渡すことができ、
呼出規約を明示することができます。
@return インポートした関数を表す ... -
VALUE Data
_ Wrap _ Struct(VALUE klass , RUBY _ DATA _ FUNC mark , RUBY _ DATA _ FUNC free , void *sval) (619.0) -
C の構造体 sval をラップして klass クラスの インスタンスである Ruby オブジェクトを生成し、それを返します。 mark、free はそれぞれ sval のマーク用・解放用の 関数へのポインタです。どちらも、必要ないときはかわりに 0 を渡します。
C の構造体 sval をラップして klass クラスの
インスタンスである Ruby オブジェクトを生成し、それを返します。
mark、free はそれぞれ sval のマーク用・解放用の
関数へのポインタです。どちらも、必要ないときはかわりに 0 を渡します。
また RUBY_DATA_FUNC の定義は以下のようです。
typedef void (*RUBY_DATA_FUNC)(void *st)
第一引数 st には sval が渡されます。
使用例
struct mytype {
int i;
char *s;
...