0.9.0.25:
[sbcl.git] / contrib / sb-posix / interface.lisp
index ed265c1..0bd5675 100644 (file)
 (define-call "sync" void never-fails)
 (define-call "truncate" int minusp (pathname filename) (length sb-posix::off-t))
 (define-call "unlink" int minusp (pathname filename))
+(define-call "mkstemp" int minusp (template c-string))
 
 (define-call-internally ioctl-without-arg "ioctl" int minusp (fd file-descriptor) (cmd int))
 (define-call-internally ioctl-with-int-arg "ioctl" int minusp (fd file-descriptor) (cmd int) (arg int))
        (syscall-error))
       (setf termios (alien-to-termios a-termios termios))))
   termios)
+
+;;; environment
+
+(export 'sb-posix::getenv :sb-posix)
+(defun sb-posix::getenv (name)
+  (let ((r (alien-funcall
+           (extern-alien "getenv" (function (* char) c-string))
+           name)))
+    (declare (type (alien (* char)) r))
+    (unless (null-alien r)
+      (cast r c-string))))
+(define-call "putenv" int minusp (string c-string))