Как заблокировать файл в течение определенного периода времени (10 секунд) с использованием языка C в Ubuntu Linux?Блокировка и разблокировка файлов с использованием API C в Ubuntu LInux
2
A
ответ
3
Это работает так:
#include <io.h>
#include <sys/file.h>
...
int f = open ("filename", O_RDONLY);
if (f < 0)
error();
if (flock (f, LOCK_EX))
error();
sleep (10);
if (flock (f, LOCK_UN))
error();
...
1
Использование fcntl(2)
для блокировки файла, а затем использовать alarm(2)
для вызова SIGALRM
обработчик, который будет разблокировать его.
+1
Безопасно ли вызывать 'flock' в обработчике сигналов? –
+0
Hrm. 'сигнал (7)' говорит нет. 'fcntl (2)' должно быть хорошо, хотя. –
Смежные вопросы
- 1. Блокировка и разблокировка файлов с помощью API java
- 2. Блокировка и разблокировка файлов из ввода
- 3. Блокировка/разблокировка файлов с помощью PhpStorm
- 4. блокировка и разблокировка в таблице
- 5. Блокировка/разблокировка ячейки с использованием условного форматирования
- 6. Блокировка и разблокировка в многопоточном приложении
- 7. Блокировка/разблокировка по значению?
- 8. Блокировка/разблокировка функции с CRITICAL_SECTION
- 9. Блокировка файлов с использованием C++ в Windows
- 10. блокировка и разблокировка таблиц при запуске minitest
- 11. VBA Excel - Блокировка/разблокировка ячеек с использованием условного форматирования?
- 12. C# Разблокировка каталога и копирование файлов
- 13. Когда блокировка и разблокировка «выбирают для обновления»?
- 14. Разблокировка и удаление файлов как одна операция
- 15. Звук API Ubuntu Linux
- 16. Автоматическая блокировка/разблокировка с использованием области действия в C++ (из фона C#)
- 17. Блокировка/разблокировка файла удаленно в Subversion
- 18. Разблокировка потока с использованием NSCondition (Objective C)
- 19. Блокировка и разблокировка ресурсов с помощью одной команды
- 20. Передача файлов с терминала в linux (ubuntu)
- 21. Преобразование XML-файлов в C++ с использованием терминала в Linux
- 22. Блокировка мьютекса в одной теме и разблокировка его в другом
- 23. thread Блокировка/разблокировка в конструкторе/деструкторе в python
- 24. Стиль кодирования: блокировка/разблокировка внутренней или внешней?
- 25. Пользовательский вид, например, блокировка/разблокировка экрана android
- 26. pthread rwlock блокировка/разблокировка из разных потоков
- 27. Переименование нескольких файлов - linux/ubuntu
- 28. Блокировка/разблокировка мьютекса внутри частных функций
- 29. C# Web API - Блокировка
- 30. Программирование на C/C++ в Ubuntu linux
Имейте в виду, что это не обязательные блокировки, они являются консультативными блокировками - все, кто использует файл, также должны ставить его. Если они этого не делают, они могут свободно манипулировать файлом. – nos