有时需要使用将函数锁定到内存中mlock
作用这通常用于包含一些初始化的动态链接函数inoct文件或mex文件,并且在调用时是可取的clear
不会删除此初始化。
作为一个例子,
function my_function () mlock (); ... endfunction
阻止my_function
在调用后从内存中删除,即使clear
被调用。可以使用确定函数是否锁定到内存中mislocked
,并使用解锁函数munlock
,下面的代码对此进行了说明。
my_function (); mislocked ("my_function") ⇒ ans = 1 munlock ("my_function"); mislocked ("my_function") ⇒ ans = 0
的常见用法mlock
是为了防止持久变量从内存中移出,如下例所示:
function count_calls () mlock (); persistent calls = 0; printf ("count_calls() has been called %d times\n", ++calls); endfunction count_calls (); -| count_calls() has been called 1 times clear count_calls count_calls (); -| count_calls() has been called 2 times
mlock
还可以用于防止对m文件的更改(例如在外部编辑器中)在当前Octave会话中返回任何影响;可以通过ignore_function_time_stamp
作用
()
¶将当前函数锁定到内存中,这样就不能用删除clear
.
详见: munlock, mislocked, persistent, clear.
()
¶(fcn)
¶解锁命名函数fcn以便可以将其从存储器中删除clear
.
如果未命名任何函数,则解锁当前函数。
详见: mlock, mislocked, persistent, clear.
tf =
mislocked ()
¶tf =
mislocked (fcn)
¶如果命名函数为true,则返回truefcn被锁定在内存中。
如果没有命名任何函数,那么如果当前函数被锁定,则返回true。
详见: mlock, munlock, persistent, clear.
版权所有 © 2024-2025 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-2