📄 task16.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="GENERATOR" content="Quadralay WebWorks Publisher Professional Edition 6.0.5">
<meta name="TEMPLATEBASE" content="book_html">
<meta name="LASTUPDATED" content="12/01/03 14:14:41">
<title>5.15 Task termination</title>
<STYLE TYPE="text/css">
<!--
span.Signal { text-transform: uppercase; font-family: Verdana }
-->
</STYLE>
</head>
<body link="#3366CC" vlink="#9999CC" text="#000000" alink="#0000CC" bgcolor="#FFFFFF"
background="images/backgrnd.gif">
<p><img src="images/stlogo.gif" width="106" height="83" align="left"
alt="logo here!"> </p>
<table width="331" border="0" align="right" cellpadding="0" cellspacing="0">
<tr>
<td><a href="os20toc.htm"><img src="images/navtoc.gif" width="84" height="23"
border="0" alt="TOC"> </a></td>
<td><a href="task15.htm"><img src="images/navprev.gif" width="80" height="23"
border="0" alt="PREV"> </a></td>
<td><a href="task17.htm"><img src="images/navnext.gif" width="83" height="23"
border="0" alt="NEXT"> </a></td>
<td><a href="os20ix.htm"><img src="images/navidx.gif" width="84" height="23"
border="0" alt="INDEX"> </a></td>
</tr>
</table>
<p><br clear="all">
</p>
<hr align="left">
<blockquote>
<h2>
<a name="1204939"> </a><font color="#003366" face="Verdana, Arial, Helvetica, sans-serif">5.15 Task termination</font>
</h2><hr>
<p>
<a name="1204940"> </a><font size=2 face="Verdana, Arial, Helvetica, sans-serif">A task terminates when it returns from the task's entry point function.</font>
</p>
<p>
<a name="1204941"> </a><font size=2 face="Verdana, Arial, Helvetica, sans-serif">A task may also terminate by using the following function:</font>
</p>
<a name="1204943"> </a><font size=2 face=Courier><strong>void task_exit(int param);<br></strong></font>
<p>
<a name="1204944"> </a><font size=2 face="Verdana, Arial, Helvetica, sans-serif">In both cases an exit status can be specified. When the task returns from its entry point function, the exit status is the value that the function returns. If <font size=2 face=Courier><strong>task_exit</strong></font> is called then the exit status is specified as the parameter. This value is then made available to the "onexit" handler if one has been installed (see below).</font>
</p>
<p>
<a name="1204945"> </a><font size=2 face="Verdana, Arial, Helvetica, sans-serif">Just before the task terminates (either by returning from its entry point function, or calling <font size=2 face=Courier><strong>task_exit</strong></font>), it calls an onexit handler. This function allows any application specific tidying up to be performed before the task terminates. The onexit handler is installed by calling:</font>
</p>
<a name="1204947"> </a><font size=2 face=Courier><strong>task_onexit_fn_t task_onexit_set(task_onexit_fn_t fn);<br></strong></font>
<p>
<a name="1204948"> </a><font size=2 face="Verdana, Arial, Helvetica, sans-serif">The onexit handler function must have a prototype of:</font>
</p>
<a name="1204949"> </a><font size=2 face=Courier><strong>void onexit_handler(task_t *task, int param)<br></strong></font>
<p>
<a name="1204950"> </a><font size=2 face="Verdana, Arial, Helvetica, sans-serif">When the handler function is called, <font size=2 face=Courier><strong>task</strong></font> specifies the task which has exited, and <font size=2 face=Courier><strong>param</strong></font> is the task's exit status.</font>
</p>
<p>
<a name="1204951"> </a><font size=2 face="Verdana, Arial, Helvetica, sans-serif">The function <font size=2 face=Courier><strong>task_onexit_set_sl</strong></font> is provided to set the task onexit handler and specify a static link.</font>
</p>
<p>
<a name="1204952"> </a><font size=2 face="Verdana, Arial, Helvetica, sans-serif">The following code example shows how a task's exit code can be stored in its task-data (see <a href="task15.htm#1204893"><font color="#0000ff" face="Verdana, Arial, Helvetica, sans-serif"><i>Section
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -