ei_get_type()(ei )を使用しようとしていますが、「type」フィールドが文書化されている場所を見つけるのに問題があります。ei.hを調べましたが、「ERL_」で始まる定数のリストしか見つかりませんでした。
#define ERL_SMALL_INTEGER_EXT 'a'
#define ERL_INTEGER_EXT 'b'
#define ERL_FLOAT_EXT 'c'
#define ERL_ATOM_EXT 'd'
#define ERL_REFERENCE_EXT 'e'
#define ERL_NEW_REFERENCE_EXT 'r'
#define ERL_PORT_EXT 'f'
#define ERL_PID_EXT 'g'
#define ERL_SMALL_TUPLE_EXT 'h'
#define ERL_LARGE_TUPLE_EXT 'i'
#define ERL_NIL_EXT 'j'
#define ERL_STRING_EXT 'k'
#define ERL_LIST_EXT 'l'
#define ERL_BINARY_EXT 'm'
#define ERL_SMALL_BIG_EXT 'n'
#define ERL_LARGE_BIG_EXT 'o'
#define ERL_NEW_FUN_EXT 'p'
#define ERL_FUN_EXT 'u'
これは正しいリストですか?er_get_type()のプロトタイプには型フィールドの* int **があるのに対し、ei.hファイルはcharを上記の定数で定義しているのでわかりません。
注:ここにリストされていない「erl_interface」パッケージで使用される他の「定数」があります。