`
xumingyong
  • 浏览: 183540 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

erlang:split_binary(Bin, N)的BUG

阅读更多

OS运行平台:

 

root@x61-laptop:~# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=8.10
DISTRIB_CODENAME=intrepid
DISTRIB_DESCRIPTION="Ubuntu 8.10"



 

 

ERLANG版本:

 

root@x61-laptop:~# cat /usr/lib/erlang/releases/RELEASES
[{release,"OTP  APN 181 01","R12B","5.6.3",
          [{kernel,"2.12.3","/usr/lib/erlang/lib/kernel-2.12.3"},
           {stdlib,"1.15.3","/usr/lib/erlang/lib/stdlib-1.15.3"},
           {sasl,"2.1.5.3","/usr/lib/erlang/lib/sasl-2.1.5.3"}],
          permanent}].


 

 

操作过程:


Eshell V5.6.3  (abort with ^G)
1> CaptureFile = <<212,195,178,161,2,0,4,0,0,0,0,0,0,0,0,0,96>>.
<<212,195,178,161,2,0,4,0,0,0,0,0,0,0,0,0,96>>

2> A = split_binary(CaptureFile, 1).
{<<"\324"
>>,<<195,178,161,2,0,4,0,0,0,0,0,0,0,0,0,96>>}

3> B = split_binary(CaptureFile, 3).
{<<"\324\303\262"
>>,<<161,2,0,4,0,0,0,0,0,0,0,0,0,96>>}

4> C = split_binary(CaptureFile, 4). 
{<<"\324\303\262\241"
>>,<<2,0,4,0,0,0,0,0,0,0,0,0,96>>}

5> D = split_binary(CaptureFile, 5).
{<<212,195,178,161,2>>,<<0,4,0,0,0,0,0,0,0,0,0,96>>}

6> E = split_binary(CaptureFile, 6).
{<<212,195,178,161,2,0>>,<<4,0,0,0,0,0,0,0,0,0,96>>}

7> 




 

 

这说明split_binary(Bin, N)函数的N如果小于5,则会出错误。

如果Bin超过128M也会出错。

 

 

还有<<"\324\303\262\241">> 是怎么产生的?

 

 

1
0
分享到:
评论
2 楼 mryufeng 2009-04-27  
<<"\324\303\262\241">>  \324是8进制的表示 3* 64+ 2 *8 +4 = 192+16 +4 =212
没什么不对呀。
1 楼 mryufeng 2009-04-26  
你在上面列出的代码还 <<...>>呢,  而且也不说什么平台 什么版本的erlang, 这个问题属于无效的。

相关推荐

    分布式应用Erlang:Erlang_OTP_19_win64

    Erlang OTP 19_win64是一款专为Windows 64位系统设计的Erlang软件开发工具包,它包含Erlang编程语言和OTP(Open Telecom Platform)框架。Erlang是一种强大的、动态类型的函数式编程语言,特别适合构建高可用性、...

    erlang-sd_notify-1.0-2.el7.x86_64.rpm

    erlang-sd_notify-1.0-2.el7.x86_64.rpm

    esl-erlang_23.0_windows_amd64.exe rabbitmq-server-3.8.4.exe

    esl-erlang_23.0和rabbitmq-3.8.4windows版本 直接下载安装...以及在path中设置ERLANG_HOME的bin目录 4. erlang安装后要检查能否编译成功一个helloworld文件。 5. rabbitMQ无法安装插件时非常有可能是erlang出问题了。

    erlang_otp_win64_20.3.zip

    是erlang_otp_20.3 的win64安装包,内为exe文件,一路next即可安装完成 ...变量名为ERLANG_HOME,变量值为安装Erlang的路径(路径中不要包含bin目录) 2.将新建的系统变量添加在Path中:格式为%ERLANG_HOME%\bin

    Erlang安装包,版本:otp_win64_24.1.7.exe

    otp_win64_24.1.7.exe

    esl-erlang_23.0_windows_amd64.exe

    这个erlang23.0版本,根据rabbitMQ官网的介绍,可以和下面这几个版本的rabbitMQ配合使用: 3.8.9 3.8.8 3.8.7 3.8.6 3.8.5 3.8.4 其他版本的rabbit,请移步其他资源下载

    Erlang_B_model.rar_Erlang B _Erlang B model_Wireless Handbook_e

    无线通信手册中的Erlang B查表通常会列出不同C/N比下的B值,使得工程师可以根据已知的话务量和系统容量快速估算出损失率。 在无线通信网络规划中,**Erlang B模型**可以帮助确定所需的最小信道数,以保证在预期的话...

    erlang_otp_win64_25.0

    Erlang OTP (Open Telephony Platform) 是一种高级并发编程语言和框架,主要由瑞典电信设备制造商Ericsson开发,用于构建高度可靠、可扩展和实时的分布式系统。Erlang OTP 25.0是该平台的一个版本,特别针对Windows ...

    erlang_environment_win64_21.0.1.zip

    Erlang是一种高级编程语言,特别适用于并发处理和分布式系统,尤其在电信、银行和互联网领域广泛应用。"erlang_environment_win64_21.0.1.zip" 是一个专门为Windows 10 64位操作系统提供的Erlang开发环境的安装包。...

    erlang_otp_20.3_man开发手册

    erlang_otp_20.3_man开发手册,erlang_otp_20.3_man开发手册,erlang_otp_20.3_man开发手册

    erlang语言实现binary_to_term完整代码

    erlang提供了binary_to_term 函数,用于把二进制数据转为原始的erlang数据。这个函数都是c实现的,这里用erlang语言实现了,很有参考价值,其他语言可以参考这个解析erlang二进制协议数据。配套文章地址...

    erlang_otp_src_17.3.tar.gz

    5. **验证**:安装完成后,可以通过运行`erl`命令启动Erlang shell,并使用`erlang:system_info(otp_release)`检查版本是否正确。 RabbitMQ是一种基于Erlang OTP平台的消息队列服务器,它利用Erlang的并发特性和OTP...

    Erlang-Formula.zip_Erlang B _Erlang-B_erlang_erlang B计算_erlang C

    Erlang B 和 Erlang C 是在电信领域中广泛使用的两个数学公式,用于预测和管理电话交换系统的呼叫处理能力。这两个公式由丹麦工程师 Agner Krarup Erlang 在20世纪初开发,对于理解通信系统中的呼叫占用率、阻塞率和...

    erlang-syntax_tools-19.3.6.4-1.el7.x86_64.rpm

    erlang-syntax_tools-19.3.6.4-1.el7.x86_64.rpm

    erlang_release_example:ErlangOTP版本处理示例

    发行版 git clone https://github.com/studzien/erlang_release_example cd erlang_release_example ..../deploy/bin/erlang_release_example console (erlang_release_example@MBP) 1&gt; current_version:ge

    erlang_otp_src_22.3.tar.gz

    Erlang 22.3 版本可能包含的更新和改进包括但不限于性能提升、新的 API 功能、bug 修复以及对其他软件库的兼容性优化。对于开发者来说,了解这些更新可以帮助他们更好地利用新版本的特性,提高代码效率和系统的稳定...

    erlang_otp_22.2_win64&rabbitmq-server-3.8.3.zip

    标题中的"erlang_otp_22.2_win64"和"rabbitmq-server-3.8.3"提到了两个关键的IT技术:Erlang OTP和RabbitMQ服务器,这两个都是在分布式系统和消息队列领域非常重要的组件。 **Erlang OTP** Erlang是一种函数式编程...

    erlang_v8_lib:一个小包装器,围绕erlang-v8创建一个迷你框架

    erlang_v8_lib 建立在erlang_v8之上的自以为是JavaScript框架。 erlang_v8_lib是一个Erlang应用程序,其中包括一个小型框架,以简化向脚本环境添加功能的任务。 该应用程序添加了三个主要组件来完成此任务: v8...

    esl-erlang_19.3_osx_10.10_amd64.dmg

    标题“esl-erlang_19.3_osx_10.10_amd64.dmg”指的是一个特定版本的Erlang编程环境的安装镜像文件,由Erlang Solutions Limited(ESL)发布,适用于Apple macOS 10.10 Yosemite操作系统,并且是为64位AMD处理器设计...

    最新版 erlang安装包 otp_src_21.3.tar.gz

    - 可能需要将Erlang的bin目录添加到PATH环境变量中,这样在任何地方都能直接运行Erlang命令。编辑`~/.bashrc`或`~/.bash_profile`,添加一行`export PATH=$PATH:/usr/local/lib/erlang/bin`,然后运行`source ~/....

Global site tag (gtag.js) - Google Analytics