erlang:ei_get_type():其中是为';类型';领域
我正在尝试使用ei_get_type()(),但是我很难找到记录“type”字段的位置。我已经在ei.h中查找过了,但我能找到的只是一个以“ERL_”开头的常量列表 这是正确的清单吗?我不确定,因为er_get_type()的原型在type字段中有*int**,而ei.h文件定义了上述常量erlang:ei_get_type():其中是为';类型';领域,erlang,erl-interface,Erlang,Erl Interface,我正在尝试使用ei_get_type()(),但是我很难找到记录“type”字段的位置。我已经在ei.h中查找过了,但我能找到的只是一个以“ERL_”开头的常量列表 这是正确的清单吗?我不确定,因为er_get_type()的原型在type字段中有*int**,而ei.h文件定义了上述常量 注意:此处未列出“erl_接口”包中使用的其他“常量”。根据Erlang中其余的c代码(odbcserver.c,show_msg.c),这是您应该比较的值 显然,这些是外部二进制格式用来标记元素类型的字节值
注意:此处未列出“erl_接口”包中使用的其他“常量”。根据Erlang中其余的c代码(odbcserver.c,show_msg.c),这是您应该比较的值
显然,这些是外部二进制格式用来标记元素类型的字节值,putget.h中的get8宏只返回这个值。几个月以来,我一直在使用ei对cnode中的erlang项进行编码/解码,您提到的常量似乎还可以。我正在使用的是: 长->a 原子->d 元组->h 空列表->j 字符串->k 列表->l 二进制->m
在我必须解析的消息类型中,我只接收这些类型的消息 “小元组”和“大元组”有什么区别??
#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'