37 #include <sys/param.h>
39 #include <sys/types.h>
50 static const int AMode = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH;
56 if ((lokFD =
open(lokFN, O_CREAT|O_RDWR, AMode)) < 0) lokRC = errno;
66 static const int AMode = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH;
67 char pbuff[MAXPATHLEN+1], *pP;
72 pP = pbuff + strlen(
Dir);
73 if (*sfx1 !=
'/' && *(pP-1) !=
'/') *pP++ =
'/';
75 if (sfx2) strcpy(pP+strlen(sfx1), sfx2);
76 lokFN = strdup(pbuff);
81 if ((lokFD =
open(lokFN, O_CREAT|O_RDWR, AMode)) < 0) lokRC = errno;
94 if (lokFD >= 0 && lokUL)
unlink(lokFN);
98 if (lokFD >= 0)
close(lokFD);
113 if (lokFD < 0)
return 0;
117 bzero(&lock_args,
sizeof(lock_args));
118 lock_args.l_type = F_UNLCK;
122 do {rc =
fcntl(lokFD, F_SETLKW, &lock_args);}
123 while(rc < 0 && errno == EINTR);
127 if (rc < 0) {lokRC = errno;
return 0;}
144 if (fileD < 0)
return EBADF;
148 bzero(&lock_args,
sizeof(lock_args));
149 lock_args.l_type = F_UNLCK;
153 do {rc =
fcntl(fileD, F_SETLKW, &lock_args);}
154 while(rc < 0 && errno == EINTR);
158 return (rc ? errno : 0);
172 if (lokFD < 0)
return 0;
179 bzero(&lock_args,
sizeof(lock_args));
180 lock_args.l_type = (
Opts &
Share ? F_RDLCK : F_WRLCK);
185 do {rc =
fcntl(lokFD, Act, &lock_args);}
while(rc < 0 && errno == EINTR);
189 if (rc < 0) {lokRC = errno;
return 0;}
206 if (fileD < 0)
return EBADF;
210 bzero(&lock_args,
sizeof(lock_args));
211 if (
opts &
Share) lock_args.l_type = F_RDLCK;
212 else lock_args.l_type = F_WRLCK;
int open(const char *path, int oflag,...)
int fcntl(int fd, int cmd,...)
int unlink(const char *path)
int Serialize(int Opts=0)
XrdOucSxeq(int sOpts, const char *path)