out

waitpid 함수를 생각해 봅시다.

lib C
  fun waitpid(pid : Int32, status_ptr : Int32*, options : Int32) : Int32
end

문서를 읽어보면 이렇게 나와 있습니다.

status_ptr이 널 포인터가 아니라면 status_ptr이 가리키는 객체에 자식 프로세스의 상태 정보가 저장된다.

함수를 이렇게 이용할 수 있습니다.

pid = ...
options = ...
status_ptr = uninitialized Int32

C.waitpid(pid, pointerof(status_ptr), options)

이로써 우리는 값을 채울 status_ptr 포인터를 넘길 수 있습니다.

out 인자를 통해 더 짧게 쓸 수도 있습니다.

pid = ...
options = ...

C.waitpid(pid, out status_ptr, options)

인자가 Int32*이기 때문에, 컴파일러가 자동으로 Int32 타입의 status_ptr 변수를 선언할 것입니다.

인자가 어떤 타입의 포인터이며, 함수가 그 포인터가 가리키는 값을 채우기만 한다면 이는 어떤 타입에도 적용될 것입니다.

results matching ""

    No results matching ""