有时需要使用将函数锁定到内存中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