;;;; ;;;; 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 [eg@unice.fr] ;;;; 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 (%init-posix) ;; 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")