binary_to_term(Str, [safe])小问题
现有二进制如下, 需要将其转换为mod_gvg
出于安全的考虑,需要使用`erlang:binary_to_term(Bin, [safe]).
| 1 | Eshell V6.2 (abort with ^G) | 
现存在模块safe
| 1 | -module(safe). | 
| 1 | Eshell V6.2 (abort with ^G) | 
明明mod_gvg已经在safe代码中,为什么还是提示失败?
将代码修改如下:
| 1 | -module(safe). | 
再次执行,一切ok
| 1 | Eshell V6.2 (abort with ^G) | 
说明在编译代码时,编译器有做优化,将
| 1 | get(mod_gvg) -> 0; | 
简化为get(_) -> 0.
因此, 如果要标明原子存在, 需要是有用的代码.