浏览 1977 次
锁定老帖子 主题:未公开的ram_file 内存文件
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2009-04-27
%% Specialized file operations -export([get_size/1, get_file/1, set_file/2, get_file_close/1]). -export([compress/1, uncompress/1, uuencode/1, uudecode/1]). 主要用于zip压缩. root@yufeng-desktop:~/otp_src_R13B/lib/stdlib/src# erl Erlang R13B (erts-5.7.1) [source] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false] Eshell V5.7.1 (abort with ^G) 1> erl_ddll:loaded_drivers(). {ok,["efile","tcp_inet","udp_inet","zlib_drv", "ram_file_drv","tty_sl"]} 2> f(R),{ok,R}=ram_file:open("hello", []). {ok,{file_descriptor,ram_file,#Port<0.453>}} 3> ram_file:get_size(R). {ok,5} 4> ram_file:get_file(R). {ok,"hello"} 5> ram_file:compress(R). {ok,25} 6> ram_file:get_file(R). {ok,[31,139,8,0,0,0,0,0,0,3,203,72,205,201,201,7,0,134,166, 16,54,5,0,0,0]} 7> ram_file:uncompress(R). {ok,5} 8> ram_file:get_file(R). {ok,"hello"} 9> ram_file:close(R). ok CTRL+C o可以看到ram_file的port的信息: =port:#Port<0.456> Slot: 456 Connected: <0.63.0> Links: <0.63.0> Port controls linked-in driver: ram_file_drv 注意ram_file:open的文件名实际上是个数据。 另外如果file:open(xxx, [ram]) 方式打开的话,其返回的实际上是ram_file的handle. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-05-04
哦。内存文件,很好,这些设施也是很有必要的...
|
|
返回顶楼 | |
发表时间:2009-05-04
前几天看到ejabberd用ram_file做ejabber_logger的动态编译 这算一个应用吧。
|
|
返回顶楼 | |