X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/8ef4ffd6987bb566c268d2a353d5fea1cfd9e430..0473e2a14a57169f3b129329956c14d8f60dc7cd:/util.c diff --git a/util.c b/util.c index 67308cd2..7d15a8a6 100644 --- a/util.c +++ b/util.c @@ -482,3 +482,25 @@ int name_to_gid(char *name, gid_t *gid) return 0; } + +/**************************************************************************** +check if a process exists. +****************************************************************************/ +int process_exists(int pid) +{ + return(kill(pid,0) == 0 || errno != ESRCH); +} + +/* lock a byte range in a open file */ +int lock_range(int fd, int offset, int len) +{ + struct flock lock; + + lock.l_type = F_WRLCK; + lock.l_whence = SEEK_SET; + lock.l_start = offset; + lock.l_len = len; + lock.l_pid = 0; + + return fcntl(fd,F_SETLK,&lock) == 0; +}