57 lines
1.6 KiB

;;;; p o s i x . s t k -- Posix function in Scheme
;;;; Copyright © 1993-1999 Erick Gallesio - I3S-CNRS/ESSI <>
;;;; Permission to use, copy, modify, distribute,and license this
;;;; software and its documentation for any purpose is hereby granted,
;;;; provided that existing copyright notices are retained in all
;;;; copies and that this notice is included verbatim in any
;;;; distributions. No written agreement, license, or royalty fee is
;;;; required for any of the authorized uses.
;;;; This software is provided ``AS IS'' without express or implied
;;;; warranty.
;;;; Author: Erick Gallesio []
;;;; Creation date: 15-Mar-1995 16:31
;;;; Last file update: 3-Sep-1999 19:53 (eg)
(if (symbol-bound? '%init-posix)
;; Posix.1 module is in the core interpreter
;; Try to load Posix.1 support dynamically
(load (string-append "posix." *shared-suffix*)))
;;;; Stat functions
(define (posix-stat->list p)
(apply append
(map list
'(:dev :ino :mode :nlink :uid :gid :size :atime :mtime :ctime)
(vector->list (posix-stat->vector p)))))
(define (posix-lstat filename)
(posix-stat->list (posix-stat filename)))
;;;; Time functions
(define (posix-asctime . time)
(apply posix-strftime "%a %b %d %H:%M:%S %Z %Y\n" time))
(define (posix-ctime . time)
(let ((t (if (null? time) (list (posix-time)) time)))
(posix-asctime (apply posix-localtime t))))
;;;; Backward compatibility
(define posix-access posix-access?)
(provide "posix")