Git Product home page Git Product logo

fd-gray's Introduction

fd-gray

fd-gray streams are binary gray streams operating on (unsigned-byte 8) data using unistd:read, unistd:write and unistd:close to embed Unix file descriptors in standard Common Lisp streams.

fd-gray:input-stream fd --> stream

Creates an input stream for file descriptor fd.

(let ((seq (make-array 128 '(unsigned-byte 8))))
  (read-sequence seq (fd-gray:input-stream 0)))

fd-gray:output-stream fd --> stream

Creates an output stream for file descriptor fd.

(let ((seq (make-array 128 '(unsigned-byte 8))))
  (write-sequence seq (fd-gray:output-stream 1)))

fd-gray:io-stream fd --> stream

Creates an input/output stream for file descriptor fd.

(let ((seq (make-array 128 '(unsigned-byte 8))
      (stream (fd-gray:io-stream (fcntl:open "file.bin" fcntl:+o-rdwr+))))
  (read-sequence seq stream)
  (write-sequence seq stream))

fd-gray:with-input-stream (var fd) &body body --> result

Creates an input stream for file descriptor fd that will be closed returning from body.

(fd-gray:with-input-stream (in (fcntl:open "file.bin" fcntl:+o-rdonly+))
  (let ((seq (make-array 128 '(unsigned-byte 8))))
    (read-sequence seq in)
    seq))

fd-gray:with-output-stream (var fd) &body body --> result

Creates an output stream for file descriptor fd that will be closed returning from body.

(let ((seq (make-array 128 '(unsigned-byte 8))))
  (fd-gray:with-output-stream (out (fcntl:open "file.bin" fcntl:+o-wronly+))
    (write-sequence seq out)))

fd-gray:with-io-stream (var fd) &body body --> result

Creates an input/output stream for file descriptor fd that will be closed returning from body.

(fd-gray:with-io-stream (out (fcntl:open "file.bin" fcntl:+o-rdwr+))
  (let ((seq (make-array 128 '(unsigned-byte 8))))
    (read-sequence seq out)
    (write-sequence seq out)))

fd-gray's People

Contributors

thodg avatar fgatherlet avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.