Blame examples/fork.lua

Packit 437b5e
-- Lua version of example from pipe(2)
Packit 437b5e
local p = require 'posix'
Packit 437b5e
local r,w = p.pipe()
Packit 437b5e
local cpid = p.fork()
Packit 437b5e
if cpid == 0 then -- child reads from pipe
Packit 437b5e
    p.close(w)  -- close unused write end
Packit 437b5e
    local b = p.read(r,1)
Packit 437b5e
    while #b == 1 do
Packit 437b5e
        io.write(b)
Packit 437b5e
        b = p.read(r,1)
Packit 437b5e
    end
Packit 437b5e
    p.close(r)
Packit 437b5e
    p._exit(0)
Packit 437b5e
else -- parent writes to pipe
Packit 437b5e
    p.close(r)
Packit 437b5e
    p.write(w,"hello dolly\n")
Packit 437b5e
    p.close(w)
Packit 437b5e
    -- wait for child to finish
Packit 437b5e
    p.wait(cpid)
Packit 437b5e
end