File: fork.lua

package info (click to toggle)
lua-posix 31-3
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 2,604 kB
  • ctags: 1,346
  • sloc: sh: 14,309; ansic: 4,794; perl: 76; makefile: 41
file content (20 lines) | stat: -rw-r--r-- 466 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
-- Lua version of example from pipe(2)
local p = require 'posix'
local r,w = p.pipe()
local cpid = p.fork()
if cpid == 0 then -- child reads from pipe
    p.close(w)  -- close unused write end
    local b = p.read(r,1)
    while #b == 1 do
        io.write(b)
        b = p.read(r,1)
    end
    p.close(r)
    p._exit(0)
else -- parent writes to pipe
    p.close(r)
    p.write(w,"hello dolly\n")
    p.close(w)
    -- wait for child to finish
    p.wait(cpid)
end