erlang:iolist_to_iovec(IoListOrBinary) -> iovec()
OTP 20.1
类型:
IoListOrBinary = iolist() | binary()
返回一个约韦茨由整数和二进制组成IoListOrBinary
。当您想要展平 iolist 但不需要单个二进制文件时,此函数非常有用。这对于将数据传递给 nif 函数非常有用,例如enif_inspect_iovec
或者进行更有效的消息传递。使用此函数的优点iolist_to_binary/1
是它不必复制off-heap 二进制文件.例子:
> Bin1 = <<1,2,3>>.
<<1,2,3>>
> Bin2 = <<4,5>>.
<<4,5>>
> Bin3 = <<6>>.
<<6>>
%% If you pass small binaries and integers it works as iolist_to_binary
> erlang:iolist_to_iovec([Bin1,1,[2,3,Bin2],4|Bin3]).
[<<1,2,3,1,2,3,4,5,4,6>>]
%% If you pass larger binaries, they are split and returned in a form
%% optimized for calling the C function writev.
> erlang:iolist_to_iovec([<<1>>,<<2:8096>>,<<3:8096>>]).
[<<1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,...>>,
<<0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
...>>,
<<0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,...>>]
相关用法
- erlang iolist_to_binary(IoListOrBinary)用法及代码示例
- erlang iolist_size(Item)用法及代码示例
- erlang ioctl(Socket, GetRequest :: gifconf)用法及代码示例
- erlang is_file用法及代码示例
- erlang is_dir用法及代码示例
- erlang is_atom用法及代码示例
- erlang is_key用法及代码示例
- erlang is_tuple用法及代码示例
- erlang is_binary用法及代码示例
- erlang is_pid用法及代码示例
- erlang is_process_alive用法及代码示例
- erlang is_alive用法及代码示例
- erlang init(UserData :: user_data(), AccessMode :: write | read, Fun :: file_op())用法及代码示例
- erlang insert_element(Index, Tuple1, Term)用法及代码示例
- erlang integer_to_binary(Integer)用法及代码示例
- erlang integer_to_binary(Integer, Base)用法及代码示例
- erlang integer_to_list(Integer)用法及代码示例
- erlang integer_to_list(Integer, Base)用法及代码示例
- erlang is_map_key(Key, Map)用法及代码示例
- erlang is_process_alive(Pid)用法及代码示例
- erlang in(Item, Q1 :: queue(Item))用法及代码示例
- erlang in_r(Item, Q1 :: queue(Item))用法及代码示例
- erlang init(Q1 :: queue(Item))用法及代码示例
- erlang init_ack(Ret)用法及代码示例
- erlang info()用法及代码示例
注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 iolist_to_iovec(IoListOrBinary) -> iovec()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。