1999-03-14 03:25:15 +08:00
|
|
|
/*
|
|
|
|
* 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.
|
|
|
|
*/
|
1999-03-29 02:07:44 +08:00
|
|
|
/* Simple file locking method for systems without */
|
1999-03-14 03:25:15 +08:00
|
|
|
|
|
|
|
#include "portable.h"
|
|
|
|
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <ac/unistd.h>
|
|
|
|
|
1999-03-29 02:07:44 +08:00
|
|
|
#ifdef NEED_SIMPLE_LOCKING
|
1999-03-14 03:25:15 +08:00
|
|
|
|
1999-03-27 01:43:23 +08:00
|
|
|
int lutil_lockf ( FILE *fp ) {
|
1999-03-14 03:25:15 +08:00
|
|
|
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-14 03:25:15 +08:00
|
|
|
}
|
|
|
|
|
1999-03-27 01:43:23 +08:00
|
|
|
int lutil_unlockf ( FILE *fp ) {
|
1999-03-14 03:25:15 +08:00
|
|
|
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 ) );
|
1999-03-14 03:25:15 +08:00
|
|
|
}
|
|
|
|
|
1999-03-29 02:07:44 +08:00
|
|
|
#endif /* NEED_SIMPLE_LOCKING */
|