Files
Digital-Research-Source-Code/CPM OPERATING SYSTEMS/CPM 68K/1.0X SOURCES/v101/clib/access.c
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

45 lines
1.1 KiB
C

/*************************************************************************
*
* a c c e s s F u n c t i o n
* -----------------------------
* Copyright 1982 by Digital Research Inc. All rights reserved.
*
* "access" returns 0 if access to a file is allowed, -1 o.w.
* Under CP/M, this just tests for existence.
*
* Calling sequence:
* ret = access(fname,mode)
* Where:
* ret = 0 if accessable, -1 o.w.
* fname -> file's name, NULL terminated string
* mode = test for read, write, exec, dir path access
* (ignored by CP/M)
*
**************************************************************************/
#include <portab.h>
#include <cpm.h>
#include <errno.h>
WORD access(fname,mode)
REG BYTE *fname;
REG WORD mode;
{
REG WORD ich;
REG WORD rval;
REG FD *fp;
rval = FAILURE;
if( (ich=allocc()) < 0)
return(FAILURE); /* can't access anything */
__chinit(ich);
fp = _getccb(ich);
if(__open(ich,fname,OPEN) == SUCCESS )
{
rval = SUCCESS;
__BDOS(CLOSE,&(fp->fcb));
}
freec(ich);
if( rval == SUCCESS )
return(SUCCESS);
else RETERR(FAILURE,ENOENT);
}