Sha256: 66353345e4b8247fecf35ef6cdd3b206632a81220047dd49cb27c53d2473da47

Contents?: true

Size: 729 Bytes

Versions: 9

Compression:

Stored size: 729 Bytes

Contents

module ASIR
  # Module to create FIFO/Named Pipes.
  module Fifo
    begin
      require 'ffi'
      module LIBC
        extend FFI::Library
        ffi_lib FFI::Library::LIBC
        attach_function :mkfifo, [ :string, :long ], :int
      end
      def mkfifo file, perms = nil
        perms ||= 0600
        if LIBC.mkfifo(file, perms) < 0
          raise "mkfifo(#{file.inspect}, #{'0%o' % perms}) failed"
        end
        true
      end
    rescue ::Exception => exc
      def mkfifo file, perms = nil
        perms ||= 0600
        system(cmd = "mkfifo #{file.inspect}") or raise "cannot run #{cmd.inspect}"
        ::File.chmod(perms, file) rescue nil if perms
        true
      end
    end
    extend self
  end
end


Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
asir-1.2.11 lib/asir/fifo.rb
asir-1.2.10 lib/asir/fifo.rb
asir-1.2.9 lib/asir/fifo.rb
asir-1.2.8 lib/asir/fifo.rb
asir-1.2.7 lib/asir/fifo.rb
asir-1.2.6 lib/asir/fifo.rb
asir-1.2.5 lib/asir/fifo.rb
asir-1.2.3 lib/asir/fifo.rb
asir-1.2.2 lib/asir/fifo.rb