diff options
Diffstat (limited to 'gs/base/gp_sysv.c')
-rw-r--r-- | gs/base/gp_sysv.c | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/gs/base/gp_sysv.c b/gs/base/gp_sysv.c new file mode 100644 index 000000000..a95aefa2e --- /dev/null +++ b/gs/base/gp_sysv.c @@ -0,0 +1,63 @@ +/* Copyright (C) 2001-2006 Artifex Software, Inc. + All Rights Reserved. + + This software is provided AS-IS with no warranty, either express or + implied. + + This software is distributed under license and may not be copied, modified + or distributed except as expressly authorized under the terms of that + license. Refer to licensing information at http://www.artifex.com/ + or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, + San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information. +*/ + +/* $Id$ */ +/* System V Unix-specific routines for Ghostscript */ + +/* This file contains a couple of standard Unix library procedures */ +/* that a few System V platforms don't provide. */ +/* Note that this file is NOT used for SVR4 platforms. */ +#include <errno.h> +#include "stdio_.h" +#include "time_.h" +#include <sys/types.h> +#include <sys/times.h> +#include <sys/stat.h> +#include <sys/param.h> + +/* rename */ +int +rename(const char *a, const char *b) +{ + if (access(a, 0) == -1) + return (-1); + unlink(b); + if (link(a, b) == -1) + return (-1); + if (unlink(a) == -1) { + unlink(b); /* ??? */ + return (-1); + } + return (0); +} + +/* gettimeofday */ +#ifndef HZ +# define HZ 100 /* see sys/param.h */ +#endif +int +gettimeofday(struct timeval *tvp, struct timezone *tzp) +{ + struct tms tms; + static long offset = 0; + long ticks; + + if (!offset) { + time(&offset); + offset -= (times(&tms) / HZ); + } + ticks = times(&tms); + tvp->tv_sec = ticks / HZ + offset; + tvp->tv_usec = (ticks % HZ) * (1000 * 1000 / HZ); + return 0; +} |