Заблокировать ресурс
#include <sys/iofunc.h>
int iofunc_lock( resmgr_context_t *ctp,
io_lock_t *msg,
iofunc_ocb_t *ocb,
iofunc_attr_t *attr );
- ctp
- A pointer to a resmgr_context_t structure that the resource-manager library uses to pass context information between functions.
- msg
- A pointer to the
io_lock_t
structure that contains the message that the resource manager received.
- ocb
- A pointer to the iofunc_ocb_t structure for the Open Control Block that was created when the client opened the resource.
- attr
- A pointer to the iofunc_attr_t structure that describes the characteristics of the device that's associated with your resource manager.
libc
The function iofunc_lock() does what is required for POSIX locks. For more information, see lockf().
- EACCES
- or EAGAIN The operation is
F_TLOCK
or F_TEST
, and the section is already locked by another process.
- EAGAIN
- The operation is
F_LOCK
or F_TLOCK
, and the file is mapped with mmap().
- EBADF
- The file descripter isn't valid, or the operation is
F_LOCK
or F_TLOCK
, and the file descriptor isn't open for writing.
- EDEADLK
- The operation is
F_LOCK
, and a deadlock was detected.
- EINTR
- A signal was caught during execution of the function.
- EINVAL
- The operation isn't one of
F_LOCK
, F_TLOCK
, F_TEST
, or F_ULOCK
, or the size plus the current file offset is less than 0
.
- ENOMEM
- The system can't allocate sufficient memory to store lock resources.
- EOPNOTSUPP
- or EINVAL The implementation doesn't support the locking of files of the type indicated by the file descriptor.
- EOVERFLOW
- The offset of the first, or if the size isn't
0
then the last, byte in the requested section can't be represented correctly in an object of type off_t
.
ЗОСРВ «Нейтрино»
- Точка остановки потока
- Нет
- Обработчик прерываний
- Нет
- Обработчик сигналов
- Да
- В потоке
- Да
iofunc_lock_calloc(), iofunc_lock_free(), lockf(), resmgr_context_t
Предыдущий раздел: Описание API системной библиотеки