- 论坛徽章:
- 0
|
原帖由 zshuming616 于 2009-4-13 14:51 发表 ![]()
因为没有数据库,2楼能具体说一下吗? - SYNOPSIS
- #include <sys/file.h>
- int flock(int fd, int operation);
- DESCRIPTION
- Apply or remove an advisory lock on the open file specified by fd. The argument operation is one of the
- following:
- LOCK_SH Place a shared lock. More than one process may hold a shared lock for a given file at a
- given time.
- LOCK_EX Place an exclusive lock. Only one process may hold an exclusive lock for a given file at a
- given time.
- LOCK_UN Remove an existing lock held by this process.
- A call to flock() may block if an incompatible lock is held by another process. To make a non-blocking
- request, include LOCK_NB (by ORing) with any of the above operations.
- A single file may not simultaneously have both shared and exclusive locks.
- Locks created by flock() are associated with an open file table entry. This means that duplicate file
- descriptors (created by, for example, fork(2) or dup(2)) refer to the same lock, and this lock may be
- modified or released using any of these descriptors. Furthermore, the lock is released either by an
- explicit LOCK_UN operation on any of these duplicate descriptors, or when all such descriptors have been
- closed.
- If a process uses open(2) (or similar) to obtain more than one descriptor for the same file, these
- descriptors are treated independently by flock(). An attempt to lock the file using one of these file
- descriptors may be denied by a lock that the calling process has already placed via another descriptor.
- A process may only hold one type of lock (shared or exclusive) on a file. Subsequent flock() calls on
- an already locked file will convert an existing lock to the new lock mode.
- Locks created by flock() are preserved across an execve(2).
- A shared or exclusive lock can be placed on a file regardless of the mode in which the file was opened.
- RETURN VALUE
- On success, zero is returned. On error, -1 is returned, and errno is set appropriately.
复制代码
[ 本帖最后由 net_robber 于 2009-4-13 15:01 编辑 ] |
|