У меня клиент-серверное приложение на Mac. Клиент загружает файл, а сервер загружает файл.
Север читает определенный размер байтов с клиента и записывает в файл. Но в середине пользователь может удалить файл с помощью контекстного меню Finder или из терминала. Я хочу остановить любую операцию записи / выполнения этого файла из любого другого приложения, пока не начнется загрузка. Это можно легко сделать с помощью FILE_SHARE_READ при создании файла в Windows. Но как мы можем достичь той же функциональности на Mac?
Я пробовал консультативные блокировки на Mac, но не повезло. Если процесс A использует консультативные блокировки файла, процесс B не может получить к нему доступ, но я всегда могу удалить файл с помощью контекстного меню Finder.