Lock a byte range in a open file */
| 630 | |
| 631 | /** Lock a byte range in a open file */ |
| 632 | int lock_range(int fd, int offset, int len) |
| 633 | { |
| 634 | struct flock lock; |
| 635 | |
| 636 | lock.l_type = F_WRLCK; |
| 637 | lock.l_whence = SEEK_SET; |
| 638 | lock.l_start = offset; |
| 639 | lock.l_len = len; |
| 640 | lock.l_pid = 0; |
| 641 | |
| 642 | return fcntl(fd,F_SETLK,&lock) == 0; |
| 643 | } |
| 644 | |
| 645 | #define ENSURE_MEMSPACE(buf, type, sz, req) \ |
| 646 | do { if ((req) > sz) buf = realloc_array(buf, type, sz = MAX(sz * 2, req)); } while(0) |
no outgoing calls
no test coverage detected