1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
/* $Id: locktest.cpp,v 1.5 1999/03/19 10:56:32 willy Exp $
this debugging program tests Xbase locking functions
*/
#include <xdb/xbase.h>
#include <stdlib.h>
#include <stdio.h>
int main(int ac, char** av)
{
#ifdef XBASE_LOCKING_ON
xbShort rc;
if(2!=ac){
std::cout << "\nUsage: locktest filename\n";
return 1;
}
if(( rc = d.OpenDatabase( av[1] )) != XB_NO_ERROR ) {
std::cout << "\nError " << rc << " opening file " << av[1] << std::endl;
exit(0);
}
xbXBase x;
xbDbf d( &x );
std::cout << "\nGoing to lock database..." << std::endl;
rc = d.LockDatabase( F_SETLKW, F_WRLCK, 1L );
if ( rc == -1 ){
perror("Lock Error");
return 2;
}
std::cout << "Database locked\n\nEnter a keystroke to release lock\n";
char xx[4];
std::cin >> xx;
rc = d.LockDatabase( F_SETLK, F_UNLCK, 1L );
std::cout << "Unlock database rc = " << rc << "\n";
d.CloseDatabase();
#else
std::cout << "\nXBASE_LOCKING_ON is not compiled in\n";
#endif
return 0;
}
|