|
Packit |
437b5e |
local P = require 'posix'
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
local fd1 = P.open(arg[1], P.O_RDONLY)
|
|
Packit |
437b5e |
local fd2 = P.open(arg[2], P.O_RDONLY)
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
local fds = {
|
|
Packit |
437b5e |
[fd1] = { events = {IN=true} },
|
|
Packit |
437b5e |
[fd2] = { events = {IN=true} }
|
|
Packit |
437b5e |
}
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
while true do
|
|
Packit |
437b5e |
P.poll(fds,-1)
|
|
Packit |
437b5e |
for fd in pairs(fds) do
|
|
Packit |
437b5e |
if fds[fd].revents.IN then
|
|
Packit |
437b5e |
local res = P.read(fd,1024)
|
|
Packit |
437b5e |
P.write(1,res);
|
|
Packit |
437b5e |
end
|
|
Packit |
437b5e |
if fds[fd].revents.HUP then
|
|
Packit |
437b5e |
P.close(fd)
|
|
Packit |
437b5e |
fds[fd] = nil
|
|
Packit |
437b5e |
if not next(fds) then return end
|
|
Packit |
437b5e |
end
|
|
Packit |
437b5e |
end
|
|
Packit |
437b5e |
end
|