fluffos Logo
Fluffos
    • 项目资源
    • 官网网址
    • 下载
    • 工具
    • 下载PDF(开发中)
    • 下载Html压缩包(开发中)
    • 编辑
    • 编辑当前页面

      编辑当前页面内容
    • 创建新页面

      添加创建当前页面内容
    • 更新
    • 创建时间:2019-01-04 13:09:57
    • 创建者:final
    • 最后更新:2020-02-13 14:02:48
    • 最后更新者:final
    • 项目列表(逐步完善中)
    • Evennia 中文文档
    • Fluffos 中文文档
    • Ldmud 中文文档
    • Muddery 中文文档
    • Mudos文档(官方停止更新-同Fluffos)
    • (管理者项目开发中)
    • 0 创建编辑文档列表
    • 个人设置
    • 锁定屏幕
    • 登出

Fluffos 中文文档

  1. 首页
  2. API文档
  3. 系统(system)
系统(system)

系统(system)


all_previous_objects

传回所有呼叫目前函式的物件阵列.
语法:
object *all_previous_objects();
用法:
传回一个所有呼叫目前函式的物件阵列 (an array of object).注意, 区域函式 (local function) 的呼叫不会更动目前的物件(current object) previous_object()  的内容.
参考:

call_other(),call_out(),origin(),previous_object()

翻译:Spock @ FF 96.Oct.12. (printed 3/16/95)

call_out_info

取得延迟中的 call_out() 资讯.
说明:
取得所有使用 call_out() 呼叫而延迟中的函式呼叫资讯.这会传回一个阵列, 每一项有四个元素 (element):
物件 (object), 函数 (function), 延迟时间 (the delayto go), 选择的参数 (the optional argument)

ctime

传回一个时间字串
语法:
string ctime( int clock );
字串 ctime( 整数 clock );
用法:
传回一个日期和时间的字串, 而参数 clock 是自从1970 年算起的秒数.
参考:

time(),time_expression(),localtime(),uptime()

翻译:Spock @ FF 97.Jan.27. (printed 3/16/95)

deep_inherit_list

取得一个物件所继承的父物件.(parent object)
语法:
string *deep_inherit_list( object obj );
字串 *deep_inherit_list( 物件 obj );
用法:
传回一个物件所继承之所有父物件的档案名称, 包括直接继承与间接继承的父物件.
参考:

inherit_list(),inherits()

翻译:Spock @ FF 97.Feb.04. (printed 3/16/95)

error

产生一个执行时段 (run_time) 错误.
语法:
void error( string err );
无传回值 error( 字串 err );
用法:
呼叫 error() 时, 会产生一个执行时段错误 err. 并中止目前正在执行的执行绪脉络 (thread). 而发生错误的程式会被追踪错误的出处, 并纪录在除错纪录 (debug log) 的档案中.
参考:

catch(),throw(),error_handler()

翻译:Spock @ FF 97.Feb.12. (printed 3/16/95)

errorp

判断一个指定的变数是否为错误码 (error code).
说明:
如果参数 arg是一个整数值的错误码, errorp() 传回 1 .您可能会修改超越函式 (emulated functions, efun), 而能传回一个标准的错误码. 所以程式可以写成像下面的样子:
if (errorp(result = efun_call()))printf("error = %d\n", result);在以後的计划中, 我们会加入一个新的函式 perror(result)用来传回整数值的错误代码与一个错误讯息的字串

eval_cost

传回执行耗费时间 (evaluation cost) 还剩多少.
语法:
void eval_cost()无传回值 eval_cost()
用法:
eval_cost() 在驱动程式 (driver) 判断此时是否陷入一个无穷回圈之前, 传回是否可以执行的指示数字.
参考:

catch(),error(),throw(),error_handler(),set_eval_limit(),reset_eval_cost()

翻译:Spock @ FF 97.Feb.12. (printed 3/16/95)

find_call_out

找到行程中下一个会被呼叫的点召
说明:
因为执行函式 func 而找到第一个点召 (call out), 并传回剩下的时间. 如果无法找到则传回 -1

function_exists

找出含有指定函式的档案.
语法:
string function_exists( string str, object ob, int flag );
字串 function_exists( 字串 str, 物件 ob, 整数 flag );
用法:
传回定义有函式 str  之物件 ob 的档案名称. 如果函式str 是被定义在 ob 所继承的物件中, 传回的档案名称可能会与 file_name( ob ) 传回的不同.

如果物件 ob 中没有定义函式 str  则传回 0.

注意, function_exists() 不会检查 ob 的投影物件(shadows).

如果 flag 是非零值,那么 static 和 private 类型的函数也会返回.
参考:

call_other(),call_out(),functionp(),valid_shadow()

翻译:Spock @ FF 97.Feb.12. (printed 3/16/95)修改:Find. 使适用于 v22 版本 driver. (99.jan.)

function_profile

对一个物件取得函式的侧写(profiling) 资讯.
语法:
mixed *function_profile( object ob );
混合 *function_profile( 物件 ob );
用法:
传回对 ob 或是 this_object() (如果不予指定 ob ) 的函式侧写资讯. 这个函式只有在驱动程式 (driver) 编译时有定义 PROFILE_FUNCTIONS 才有效.传回值:此函式传回一个映射变数的阵列, 每一个在 ob 中的函式传回的映射格式如下:

([ "name"     : 函式的名称,"calls"    : 呼叫的次数,

/* cpu 时间以微秒 (microsecond) 为单位 */"self"     : cpu_time_spent_in self,"children" : cpu_time_spent_in_children])

此处的用途与 CPU 时脉有关, 虽然单位为微秒(microseconds), 但实际上的精确度要差得多.
参考:

rusage(),time_expression(),opcprof()

翻译:Spock @ FF 97.Jul.26. (printed 3/16/95)

inherit_list

取得一个物件所继承的父物件 (parents)清单.
语法:
string *inherit_list( object obj );
字串 *inherit_list( 物件 obj );
用法:
传回物件 obj  所继承之父物件的档案名称, 以字串阵列(array) 的形式传回. 例如: A 继承 B, 而 B  继承 C  ,inherit_list(A) 会传回一个含有 B 的阵列, 而没有 C.
参考:

deep_inherit_list(),inherits()

翻译:Spock @ FF 97.Feb.14. (printed 3/16/95)

inherits

判断一个物件是否继承一个指定的档案
语法:
int inherits( string file, object obj );
整数 inherits( 字串 file, 物件 obj );
用法:
如果 obj 不是继承 file, inherits() 传回 0. 如果 obj继承最新复制的 file 则传回 1, 如果继承旧的复制的 file则传回 2.
参考:

deep_inherit_list(),inherit_list()

翻译:Spock @ FF 97.Feb.14. (printed 3/16/95)

localtime

转换成本地时间
语法:
#include <localtime.h>mixed *localtime( int time );
混合 *localtime( 整数 time );
用法:
localtime() 转换一个整数的时间值 (像是 time() 传回值) 成为一个阵列. 这个阵列就是目前的本地时间. 在以前 time() 是函式用来取得格林威治时间 (GMT (UTC)),而本地时间的定义是与格林威治时间的差值. 现在这种换算的方法已经没有必要了. localtime() 传回秒数、分钟、小时、日期、月数、年数、星期几、一年中的第几天、本地的时区名称、本地时区与格林威治时区的差值. 这些时间的资讯直接由作业系统取得, 而且使驱动程式不需要用到 MUD  本身的设定档案.

localtime() 传回一个包含上述时间资讯的阵列. 每一个时间值的索引关键字 (index)  由 localtime.h  定义.下表则整理出 localtime()  传回的阵列内容.

int    LT_SEC        秒数 (0..59)int    LT_MIN        分钟 (0..59)int    LT_HOUR        小时 (0..23)int    LT_MDAY        日数 (1..31)int    LT_MON        月数 (0..11)int    LT_YEAR        年份 (必须大於 1900)int    LT_WDAY        星期几 (0..6)int    LT_YDAY        一年中的第几天 (0..365)int    LT_GMTOFF     格林威治时间相差的秒数 (UTC)string    LT_ZONE        本地时区的名称
参考:

ctime(),time(),time_expression(),uptime(),/include/localtime.h

翻译:Spock @ FF 97.Feb.18. (printed 3/16/95)

max_eval_cost

传回最高的执行耗费时间 (evaluation cost)
语法:
void max_eval_cost()无传回值 max_eval_cost()
用法:
max_eval_cost() 在驱动程式 (driver) 判断此时是否陷入一个无穷回圈之前, 传回是否可以执行的指示数字.
参考:

catch(),error(),throw(),error_handler(),set_eval_limit(),reset_eval_cost()

翻译:Spock @ FF 97.Apr.15. (printed 3/16/95)

reclaim_objects

清除残留在记忆体中的物件.
语法:
int reclaim_objects( void );
整数 reclaim_objects( 无参数 );
用法:
这个函式重复检查每一个载入的物件, 并尽力把残留在记忆体中的物件清除掉. 这样可以清出一些记忆体, 清理的数量多寡要看  mud 本身的程式是如何写的. 如果一个物件被其他物件里面的全域变数 (global variable)指标 (pointer)  指向到, 就会残留在记忆体中, 然後再被摧毁掉. 这个超越函式(efun)  会传回变数遇到的被摧毁的物件数目.
参考:

destruct()

翻译:Spock @ FF 97.May.24. (printed 3/16/95)

replace_program

把 this_object() (目前这个物件)的程式置换掉.
语法:
void replace_program( string str );
无传回值 replace_program( 字串 str );
用法:
replace_program() 会把 this_object()  替换成这个物件继承的物件. 字串 str  是要进行置换的档案名称. 物件进行置换之後, 目前的物件就相当於继承物件的复制品. 只是保留目前物件的档案名称和全域变数 (global variable)不变. 在目前的物件程式执行完毕以前, 不会进行置换的动作.
参考:

clone_object(),new()

翻译:Spock @ FF 97.May.27. (printed 3/16/95)

reset_eval_cost

重新设定剩下的执行耗费时间数字.
语法:
void reset_eval_cost();
用法:
reset_eval_cost() 把剩下的执行耗费时间数字设定成最高执行耗费时间数.
参考:

catch(),error(),throw(),error_handler(),eval_cost(),set_eval_limit()

翻译:Spock @ FF 97.Jun.2. (printed 3/16/95)

set_eval_limit

设定执行耗费时间 (evaluation cost)的上限值.
语法:
void set_eval_limit( int );
无传回值 set_eval_limit( 整数 );
用法:
以一个非零值的参数指定给 set_eval_limit() 函式, 则设定任何一个执行绪 (thread) 在发生错误之前所允许的最高执行耗费时间. 如果参数为 0, 则将目前的执行耗费时间计数器(counter) 归零, 并传回目前执行耗费时间的上限值.set_eval_limit(-1) 传回剩下的执行耗费时间.
参考:

catch(),error(),throw(),error_handler(),eval_cost()

翻译:Spock @ FF 97.Jul.21. (printed 3/16/95)

set_reset

更改一个物件距离下次重新设定 (reset) 的时间.
语法:
varargs void set_reset( object ob, int time );
不定参数 无传回值 set_reset( 物件 ob, 整数 time );
用法:
设定物件 ob 距离下次重新设定的时间为整数 time 指定的秒数.如果不指定 time, 则使用驱动程式普通设定的公式.

公式:reset time = current_time + reset_time / 2 +random(reset_time / 2)
参考:

reset()

翻译:Spock @ FF 97.Jul.21. (printed 3/16/95)

shutdown

关闭 mud 驱动程式 (driver).
语法:
void shutdown( int how );
无传回值 shutdown( 整数 how );
用法:
这个函式可以关闭驱动程式. 比起因为程式错误、档案损毁、驱动程式被 kill 或其他原因导致驱动程式发生严重问题而关闭, 用 shutdown 算是正常控制驱动程式关闭的方式. 参数 how指定驱动程式要送给 exit() 函式的整数值. 惯例上, 当 how为 -1 时, 则一起关闭重新启动驱动程式的 script . 所以reboot (重新启动 mud) 这个指令应该使用 shutdown(), 而halt 指令 (停止 mud 执行) 应该使用 shutdown(-1) .  如果您想要藉由上述的方式控制 mud 关闭的方式, 您应该在 script中检查传回值.shutdown() 显然是一个需要安全把关的函式. 在 simul_efun中加上 shutdown()  并使用 exec(), 这样可以对执行shutdown() 作适当的检查. 请确定在主宰物件 (master.c)中也要设定 valid_override(4) 以防止 efun::shutdown()这种方式逃过检查.
参考:

crash(),slow_shutdown()

翻译:Spock @ FF 97. Jul.23. (printed 3/16/95)

time

传回现在时刻距离 1970 年一月一日有多少秒.
语法:
int time( void );
整数 time ( 无参数 );
用法:
传回从 1970 年一月一日午夜 (格林威治时间) 开始到现在,总共过了多少秒.
参考:

ctime(),localtime(),time_expression(),uptime()

翻译:Spock @ FF 97.Jul.25. (printed 3/16/95)

uptime

传回上一次驱动程式 (driver) 启动至今的秒数.
语法:
int uptime( void );
整数 uptime( 无参数 );
用法:
uptime() 传回上一次驱动程式重新启动至今有几秒.
参考:

time(),ctime(),localtime(),time_expression()

翻译:Spock @ FF 97.jul.25. (printed 3/16/95)

温馨提示

当前页面内容可随意编辑. 但是需要管理员人工审核.

fluffos logo

Fluffos 中文文档

高性能的Mud Driver
  • 目录索引
  • 更新日志
  • 编译
    • Lunix编译
    • Windows编译
  • API文档
    • 互动函数(interactive)
    • 字符串(strings)
    • 套接字(sockets)
    • 物件(objects)
    • 数字(numbers)
    • Mudlib(mudlib)
    • 映射(mappings)
    • 内部处理(internals)
    • 常规(general)
    • 函数(functions)
    • 浮点数(floats)
    • 文件处理(filesystem)
    • 数据库(dbase)
    • 编译(compile)
    • 调用(calls)
    • 缓冲区(buffers)
    • 阵列(arrays)
    • 系统(system)
  • 其他
    • 配置 options.h
最后编辑:final 最后更新时间:2020-02-13 14:02:48
最后编辑:final 最后更新时间:2020-02-13 14:02:48

© 2019 Final开发维护 邮箱:finalcn#126.com