ack/mach/sun2/libsys/lockf.c

44 lines
571 B
C
Raw Permalink Normal View History

1987-03-03 09:37:26 +00:00
#include <errno.h>
lockf(fildes, mode, size)
long size;
{
struct {
short type, whence; long start, end; short pid;
} x;
int i = 8;
extern int errno;
x.type = 2;
x.whence = 1;
x.start = 0;
x.end = size;
switch(mode) {
case 0:
x.type = 3;
break;
case 1:
i = 9;
break;
case 2:
break;
case 3:
if (fcntl(fildes,7,&x) == -1) {
return -1;
}
if (x.type == 3) {
return 0;
}
errno = EACCES;
return -1;
default:
errno = EINVAL;
return -1;
}
if (fcntl(fildes,i,&x) == -1) {
if (errno = 79) {
errno = 78;
}
return -1;
}
}