模块 posix
require "posix"
posix 是完整 POSIX 接口绑定(luaposix),通过 require "posix" 加载,仅 POSIX 系统可用。以下为常用 API 摘要;完整清单见 luaposix 文档。
| API | 说明 |
|---|---|
chdir | posix.chdir(path):改变工作目录(POSIX) |
dirent | posix.dirent 子模块:目录遍历(opendir/readdir/closedir)(POSIX) |
exec | posix.exec(prog, ...):替换当前进程映像(POSIX) |
fork | posix.fork():复制当前进程,父进程返回子进程 pid,子进程返回 0(POSIX) |
getpid | posix.getpid():返回当前进程 pid(POSIX) |
kill | posix.kill(pid, sig):向进程发送信号(POSIX) |
pipe | posix.pipe():创建管道,返回 (读fd, 写fd)(POSIX) |
signal | posix.signal(sig, handler):安装信号处理器(POSIX) |
stat | posix.stat(path):返回文件状态表(type/mode/size/…)(POSIX) |
sys.socket | posix.sys.socket 子模块:socket/bind/connect/accept/send/recv(POSIX) |
unistd.read/write | posix.unistd.read(fd, n) / write(fd, str):裸文件读写(POSIX) |
wait | posix.wait():等待任一子进程,返回 (pid, status)(POSIX) |
示例
local posix = require "posix"
local pid = posix.fork()
if pid == 0 then
print("child pid", posix.getpid())
os.exit(0)
else
local wpid, status = posix.wait()
print("child", wpid, "exit", status)
end
local st = posix.stat("/etc/hosts")
print(st.type, st.size)
local r, w = posix.pipe()
posix.write(w, "hello")
print(posix.read(r, 5))
← 返回模块索引