acl/lib_acl/samples/flock/main.cpp
zsxxsz cf2528eb7c 完善了非阻塞IO的SSL功能;将 samples 移到 lib_acl 目录下
完善了非阻塞IO的SSL功能;将 acl/samples/ 下的示例分别移到 lib_acl 及 lib_protocol 目录下
2014-11-30 21:15:35 +08:00

41 lines
1.0 KiB
C++

#include "lib_acl.h"
#include <stdlib.h>
#include <stdio.h>
int main(int argc acl_unused, char *argv[] acl_unused)
{
ACL_FILE_HANDLE handle;
const char *filename = "test.lock";
char ebuf[256];
handle = acl_file_open(filename, O_RDWR | O_CREAT, 0600);
if (handle == ACL_FILE_INVALID) {
acl_msg_fatal("open file %s error(%s)",
filename, acl_last_strerror(ebuf, sizeof(ebuf)));
}
printf("open %s ok, begin to lock it\r\n", filename);
if (acl_myflock(handle, ACL_FLOCK_STYLE_FCNTL, ACL_FLOCK_OP_EXCLUSIVE) == -1) {
acl_msg_error("lock error(%s)", acl_last_strerror(ebuf, sizeof(ebuf)));
getchar();
return (-1);
}
printf("lock %s ok, enter any key to unlock\r\n", filename);
getchar();
if (acl_myflock(handle, ACL_FLOCK_STYLE_FCNTL, ACL_FLOCK_OP_NONE) == -1) {
acl_msg_error("unlock error(%s)", acl_last_strerror(ebuf, sizeof(ebuf)));
getchar();
return (-1);
}
printf("unlock %s ok, enter any key to close file\r\n", filename);
getchar();
acl_file_close(handle);
return (0);
}