/* Copyright (C) 1992 artofcode LLC. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA, 02111-1307. */ /*$Id: gp_sysv.c,v 1.2.6.1.2.1 2003/01/17 00:49:02 giles Exp $ */ /* 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 #include "stdio_.h" #include "time_.h" #include #include #include #include /* 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; }