r5419: *** empty log message ***
[kmrcl.git] / io.lisp
diff --git a/io.lisp b/io.lisp
index 4134bd669966f63104bd06416be4ebfe069f3c24..47fc178f5ed914712b8186a52db7c40531b0c2db 100644 (file)
--- a/io.lisp
+++ b/io.lisp
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Apr 2000
 ;;;;
-;;;; $Id: io.lisp,v 1.14 2003/07/30 23:01:46 kevin Exp $
+;;;; $Id: io.lisp,v 1.15 2003/07/31 17:03:37 kevin Exp $
 ;;;;
 ;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;;
 
 
 
+#+openmcl
+(defun open-device-stream (path direction)
+  (let* ((mode (ecase direction
+                (:input #.(read-from-string "#$O_RDONLY"))
+                (:output #.(read-from-string "#$O_WRONLY"))
+                (:io #.(read-from-string "#$O_RDWR"))))
+        (fd (ccl::fd-open (ccl::native-translated-namestring path) mode)))
+    (if (< fd 0)
+       (ccl::signal-file-error fd path)
+       (ccl::make-fd-stream fd :direction direction))))
+
+
 (defun null-output-stream ()
   #-openmcl
   (when (probe-file #p"/dev/null")