Google
 

Trailing-Edge - PDP-10 Archives - SRI_NIC_PERM_FS_1_19910112 - c/lib/usys/utime.c
There are 5 other files named utime.c in the archive. Click here to see a list.
/*
**	UTIME - set file times
**
**	(c) Copyright Ken Harrenstien 1989
**		for all changes after v.6, 11-Sep-1987
**	(c) Copyright Ian Macky, SRI International 1987
*/

#include <c-env.h>
#if SYS_T20+SYS_10X	/* Systems supported for */

#include <errno.h>
#include <sys/usysig.h>
#include <sys/time.h>
#include <sys/usysio.h>
#include <sys/file.h>
#if SYS_T20+SYS_10X
#include <jsys.h>
extern _gtjfn(), _rljfn();
#endif

int utime(file, timep)
char *file;
time_t timep[2];
{
#if SYS_T20+SYS_10X
    int jfn, ablock[5];

    USYS_BEG();
    if ((jfn = _gtjfn(file, O_RDONLY)) == 0)
	USYS_RETERR(ENOENT);

    ablock[1] = (_FBREF << 18) | jfn		/* read-time offset,,JFN */
		| _CFNUD;			/* plus no-update bit */
    ablock[2] = -1;				/* mask of bits to change */
    ablock[3] = tadl_from_utime(timep[0]);	/* new read time */
    if (!(jsys(CHFDB, ablock))) {
	_rljfn(jfn);
	USYS_RETERR(EACCES);			/* failed to set it */
    }

    ablock[1] = (_FBWRT << 18) | jfn;		/* write-time offset,,JFN */
    ablock[3] = tadl_from_utime(timep[1]);	/* new write time */
    if (!(jsys(CHFDB, ablock))) {
	_rljfn(jfn);
	USYS_RETERR(EACCES);			/* failed to set it */
    }
    _rljfn(jfn);
    USYS_RET(0);				/* else we won, so ret 0 */
#else
    return -1;
#endif
}
#endif /* T20+10X */