다음: 함수 우선 순위, 이전: 과적재와 자동 적재, 상위 문서: 함수 기록철   [차례][찾아보기]


11.9.6 함수 잠그기

함수를 mlock 함수로 막기억장치에 옭아매는 것이 필요할 때가 있습니다. 이 기능은 보통  일부 초기 값이 있는 oct 기록철이나 mex 기록철에 있는 동적 연결 함수에 사용하며, clear 호출로 인하여 이들  초기 값이 제거되지 않게 합니다.

예를 들자면,

function my_function ()
  mlock ();
  …
endfunction

위는 호출된 이후 clear 호출로 인하여 my_function가 막기억장치에서 지워지는 것을 막습니다. 아래 부호가 보여주는 것처럼 함수가 막기억장치에 잠겨있는지 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 기록철이 변경되는 일을 막기도 합니다. ignore_function_time_stamp 함수도 비슷한 역할을 합니다.

mlock ()

현재 함수를 막기억장치에 잠가 clear가 지우지 못하도록 합니다.

같이 보기: munlock, mislocked, persistent, clear.

munlock ()
munlock (함수)

함수 함수의 잠금을 풀어 clear로 막기억장치에서 지워질 수 있도록 합니다.

함수 이름을 주지 않으면, 현재 함수의 잠금을 풉니다.

같이 보기: mlock, mislocked, persistent, clear.

mislocked ()
mislocked (함수)

함수 함수가 막기억장치에 잠겨있으면 참을 반환합니다.

함수 이름을 주지 않고, 현재 함수가 잠겨있으면, 현재 함수의 잠금을 풉니다.

같이 보기: mlock, munlock, persistent, clear.


다음: 함수 우선 순위, 이전: 과적재와 자동 적재, 상위 문서: 함수 기록철   [차례][찾아보기]