作者laechan (挥泪斩马云)
看板mud_sanc
标题Re: [wizs] 关於 .o 档的资料变更
时间Thu Jan 31 15:13:39 2019
打报告打到快睡着,这篇大致提一下做法。
首先去 read .o 档,然後 explode
strs=read_file(files+".o");
tmps=explode(strs,"\n");
接着土法炼钢,读出每个变数
foreach(tmp in tmps)
{
i=0;
while(tmp[i..i]!=" ")
i++;
vars=([tmp[0..i],
}
然後去产生一个临时的 .c 档:
content=@LONG
inherit DAEMON;
LONG
;
content+="mixed ";
foreach(tmp in tmps)
content+=tmp+",";
content+="\n\n";
content+=@LONG
void create()
{
::create();
seteuid(getuid(this_object()));
LONG;
content+=" restore_object("+file+");\n}\n\n";
write_file("/open/tmp_load.c",content);
update_files("/open/tmp_load");
这样 /open/tmp_load.c 就能用来 restore 目标 .o 档,并且
将载入的变数资料也全部存在这个 tmp_load.c 物件里头。
当然实际上跟 running 一样,这东西写起来是落落长的,不过
如果能写出来,好处很多。
LAechan
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.117.106.224
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/mud_sanc/M.1548918823.A.EBD.html
1F:→ laechan : 其实用 javascript 也可以写 .o 档的读取工具,年後 01/31 15:14
2F:→ laechan : 我找时间写 01/31 15:15
3F:→ typers : 没有值的属性不会出现在 .o 档 01/31 16:41
4F:→ typers : 直接decode为mapping, 编辑後再encode会比较通用 01/31 16:48
6F:→ typers : 可以修改来处理 .o 格式 01/31 16:53
7F:→ laechan : 呃没要增删改,读取而已,堪用即可 01/31 17:53