out¶
考虑 waitpid 函数
lib C
fun waitpid(pid : Int32, status_ptr : Int32*, options : Int32) : Int32
end
函数的文档说明
The status information from the child process is stored in the object
that status_ptr points to, unless status_ptr is a null pointer.
我们可以像这样使用该函数
status_ptr = uninitialized Int32
C.waitpid(pid, pointerof(status_ptr), options)
这样我们传递一个 status_ptr
指针给函数,让它填充其值。
有一种更简单的方法来编写以上代码,即使用 out
参数
C.waitpid(pid, out status_ptr, options)
编译器会自动声明一个类型为 Int32
的 status_ptr
变量,因为参数的类型是 Int32*
。
这将适用于任何 fun
参数,只要它的类型是指针(当然,只要函数确实填充了指针指向的值)。