openldap/libraries/liblutil/lockf.c

40 lines
1.1 KiB
C
Raw Normal View History

/*
* Copyright 1998,1999 The OpenLDAP Foundation, Redwood City, California, USA
* All rights reserved.
*
* Redistribution and use in source and binary forms are permitted only
* as authorized by the OpenLDAP Public License. A copy of this
* license is available at http://www.OpenLDAP.org/license.html or
* in file LICENSE in the top-level directory of the distribution.
*/
/* File locking methods */
#include "portable.h"
#include <stdio.h>
#include <ac/unistd.h>
1999-03-27 01:43:23 +08:00
#if defined(NEED_FCNTL_LOCKING)
1999-03-27 01:43:23 +08:00
int lutil_lockf ( FILE *fp ) {
struct flock file_lock;
memset( &file_lock, 0, sizeof( file_lock ) );
file_lock.l_type = F_WRLCK;
file_lock.l_whence = SEEK_SET;
file_lock.l_start = 0;
file_lock.l_len = 0;
1999-03-27 01:43:23 +08:00
return( fcntl( fileno(fp), F_SETLKW, &file_lock ) );
}
1999-03-27 01:43:23 +08:00
int lutil_unlockf ( FILE *fp ) {
struct flock file_lock;
memset( &file_lock, 0, sizeof( file_lock ) );
file_lock.l_type = F_UNLCK;
file_lock.l_whence = SEEK_SET;
file_lock.l_start = 0;
file_lock.l_len = 0;
1999-03-27 01:43:23 +08:00
return ( fcntl( fileno(fp), F_SETLK, &file_lock ) );
}
#endif /* !HAVE_FILE_LOCKING */