11.10.6函数锁定

有时需要使用将函数锁定到内存中mlock作用这通常用于包含一些初始化的动态链接函数inoct文件或mex文件,并且在调用时是可取的清楚的不会删除此初始化。

作为一个例子,

函数my_function()mlock()。。。结束函数

阻止my_function在调用后从内存中删除,即使清楚的被调用。可以使用确定函数是否锁定到内存中锁定错误,并使用解锁函数munlock,下面的代码对此进行了说明。

my_function();锁定错误(“my_function”)⇒ ans=1munlock(“my_function”);锁定错误(“my_function”)⇒ ans=0

的常见用法mlock是为了防止持久变量从内存中移出,如下例所示:

函数count_calls()mlock();持久调用=0;printf(“count_calls()已被调用%d次\n”,++次调用);endfunctioncount_calls();-|count_calls()已被调用1次clear count_callscount_callcalls();-|count_calls()已被调用2次

mlock还可以用于防止对m文件的更改(例如在外部编辑器中)在当前Octave会话中返回任何影响;可以通过ignore_function_time_stamp作用

 
: mlock ()

将当前函数锁定到内存中,这样就不能用删除清楚的.

详见: munlock, 锁定错误, 持久的, 清楚的.

 
: munlock ()
: munlock (fcn)

解锁命名函数fcn以便可以将其从存储器中删除清楚的.

如果未命名任何函数,则解锁当前函数。

详见: mlock, 锁定错误, 持久的, 清楚的.

 
: tf = mislocked ()
: tf = mislocked (fcn)

如果命名函数为true,则返回truefcn被锁定在内存中。

如果没有命名任何函数,那么如果当前函数被锁定,则返回true。

详见: mlock, munlock, 持久的, 清楚的.


版权所有 © 2024 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号