<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ocr.michiyo.me/w/index.php?action=history&amp;feed=atom&amp;title=API%2Fcomputer%2Fzh</id>
	<title>API/computer/zh - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://ocr.michiyo.me/w/index.php?action=history&amp;feed=atom&amp;title=API%2Fcomputer%2Fzh"/>
	<link rel="alternate" type="text/html" href="https://ocr.michiyo.me/w/index.php?title=API/computer/zh&amp;action=history"/>
	<updated>2026-08-24T15:14:13Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://ocr.michiyo.me/w/index.php?title=API/computer/zh&amp;diff=1022&amp;oldid=prev</id>
		<title>imported&gt;OCDoc Import: Imported from legacy OpenComputers documentation at ocdoc.cil.li</title>
		<link rel="alternate" type="text/html" href="https://ocr.michiyo.me/w/index.php?title=API/computer/zh&amp;diff=1022&amp;oldid=prev"/>
		<updated>2026-08-24T08:08:27Z</updated>

		<summary type="html">&lt;p&gt;Imported from legacy OpenComputers documentation at ocdoc.cil.li&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Computer(电脑) API =&lt;br /&gt;
&lt;br /&gt;
此API主要提供了关于正在运行Lua state的电脑的信息，例如其地址和运行时间。API中还包含了用于用户管理的函数。此API中的函数可以从属于`os`API，但是为了保持“整洁”，这些函数归类为单独的API。&lt;br /&gt;
&lt;br /&gt;
* `computer.address(): string`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;此电脑的[[:component:component_access:zh|组件地址]]。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `computer.tmpAddress(): string`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;此电脑的临时文件系统组件地址（如果有），用于在启动时挂载此文件系统。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `computer.freeMemory(): number`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;当前未使用的内存大小，单位为字节。如果此数值接近0，那么你的电脑可能会很快因为内存不足而崩溃（报出“out of memory”错误）。请注意，为了运行OpenOS，高度建议用户安装1条或以上1.5级内存条。系统能用单条1级内存启动，但很快就容易内存不足。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `computer.totalMemory(): number`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;此电脑安装的内存总量，单位为字节。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `computer.energy(): number`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;电脑所在网络中当前可用的能量数量。对机器人而言是机器人自己的能量/燃料量。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `computer.maxEnergy(): number`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;电脑所在网络中能够存储的最大能量数量。对机器人而言是机器人的内置能量缓存大小（可以在机器人的GUI中查看）。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `computer.uptime(): number`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;此电脑运行的时间，单位为现实世界的秒。计算方法为自电脑启动以来游戏世界经过的时间——意味着游戏暂停时此数值不会增长。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `computer.shutdown([reboot: boolean])`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;关闭电脑。如果`reboot`为`true`也可以重启电脑，重启即先关机再自动启动。此函数不会有返回值。  &lt;br /&gt;
下面的样例将会在电脑运行至少300秒（5分钟）后重启电脑。&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
```lua local computer = require(&amp;quot;computer&amp;quot;) if computer.uptime() &amp;gt;= 300 then&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;  computer.shutdown(true)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
end ```&lt;br /&gt;
&lt;br /&gt;
* `computer.getBootAddress():string`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;获取首先尝试用于引导启动的文件系统组件地址。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OC 1.3新加入。&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* `computer.setBootAddress([address:string])`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;设定首先尝试用于引导启动的文件系统组件地址。传参`nil`/不传参调用以清除。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OC 1.3新加入。&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* `computer.runlevel(): string|number`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;返回电脑当前所在的[[https://en.wikipedia.org/wiki/Runlevel|运行级别（runlevel）]]（英文维基百科）。OpenOS的运行级别有：&lt;br /&gt;
* `S`: 单用户模式，组件和文件系统尚未初始化。&lt;br /&gt;
* `1`: 单用户模式，文件系统与组件已初始化——OpenOS完成了启动。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `computer.users(): string, ...`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;此电脑上的全体登记用户列表，形式为元组（tuple）。若要将结果转化为表，请先对其使用`table.pack`。  &lt;br /&gt;
请参见[[:computer_users:zh|用户行为控制文档]]获取更多信息。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `computer.addUser(name: string): boolean or nil, string`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;在此电脑上登记一个新用户。若添加成功则返回`true`，否则返回`nil`和一条报错信息。  &lt;br /&gt;
欲添加的用户必须在游戏中。此用户将会获得此电脑的完全访问权限。在shell中，可以执行`useradd &amp;lt;用户名&amp;gt;`命令调用此方法。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `computer.removeUser(name: string): boolean`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;删除此电脑上的某个用户。若用户成功被移除则返回`true`，若用户先前未被登记则返回`false`。  &lt;br /&gt;
此用户将会失去对此电脑的一切访问权限。当用户列表中的所有用户均被移除时，任何用户均可访问此电脑。在命令行中可使用`userdel &amp;lt;用户名&amp;gt;`调用此方法。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `computer.pushSignal(name: string[, ...])`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;向队列中推送一个新信号。信号按照先进先出顺序处理。推送的信号应至少有信号名，是否存在一并传递的参数均可。请注意只有基本数据类型才可作为信号参数，包括：`nil`、`boolean`、`number`、`string`和`table`。表（table）类型确实受支持（请继续读），但是线程和函数型变量不受支持。  &lt;br /&gt;
请注意只有特定类型的表才受支持。具体而言，表必须由受支持的数据类型组成，例如`string`型和`number`型，甚至可以是子表。但是不可以包含线程和数组。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `computer.pullSignal([timeout: number]): name, ...`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;尝试从队列中拉取一个信号，在等待指定时长后判定为失败并返回`nil`。如果不指定时间则永久等待。  &lt;br /&gt;
返回结果的第一个值为信号名，后续返回值与`pushSignal`推送的内容有关。依事件类型而定。&lt;br /&gt;
通常而言使用[[API/event/zh|event]]库中的`event.pull`函数更加方便。返回值完全一致，但是`event`库提供了更多选项。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `computer.beep([frequency:string or number[, duration: number])`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;若`frequency`为数字，其值需要介于20与2000之间。  &lt;br /&gt;
让电脑产生频率为`frequency` Hz，时长为`duration`秒的滴声。此函数已经被重载为可以接收字符串参数，其格式为点`.`与`-`破折号的组合，分别代表短与长滴声。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `computer.getDeviceInfo(): table`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;返回存储了此电脑上安装的设备信息的表。&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== 目录 ==&lt;br /&gt;
&lt;br /&gt;
{{:API/contents/zh}}&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;OCDoc Import</name></author>
	</entry>
</feed>