## poll.lua

    #! /usr/bin/env lua

    local M = require 'posix.unistd'

    local F = require 'posix.fcntl'

    local fd1 = F.open(arg[1], F.O_RDONLY)
    local fd2 = F.open(arg[2], F.O_RDONLY)

    local fds = {
       [fd1] = {events={IN=true}},
       [fd2] = {events={IN=true}}
    }

    while true do
       require 'posix.poll'.poll(fds, -1)
       for fd in pairs(fds) do
          if fds[fd].revents.IN then
             local res = M.read(fd,1024)
             M.write(1,res);
          end
          if fds[fd].revents.HUP then
             M.close(fd)
             fds[fd] = nil
             if not next(fds) then
                return
             end
          end
       end
    end

generated by LDoc 1.5.0 Last updated 2025-02-16 13:16:41