Есть ли способ удалить FILE_FLAG_DELETE_ON_CLOSE? - PullRequest
4 голосов
/ 29 августа 2010

в моем приложении я хотел бы открыть временный файл с помощью FILE_FLAG_DELETE_ON_CLOSE. однако в некоторых случаях временный файл необходимо сохранить и он достаточно велик

Я хочу удалить атрибут FILE_FLAG_DELETE_ON_CLOSE для открытого дескриптора? Это возможно? копирование содержимого файла или переименование не совсем то, что я хочу, я хотел бы удалить атрибут. это связано с тем, как я выполняю некоторые записи, в моем приложении закрытие дескриптора откроет меня до состояния гонки

Ответы [ 2 ]

5 голосов
/ 29 августа 2010

Вы могли бы сделать это наоборот. Сначала откройте файл, указав FILE_SHARE_DELETE. Затем, когда вам нужно закрыть файл, снова откройте его с помощью FILE_DELETE_ON_CLOSE, затем закройте обе ручки. Или просто закройте его, и он не будет удален.

2 голосов
/ 29 августа 2010

Нет, это невозможно после создания.Опасная идея может начаться с утверждения: «Этот флаг относится только к дескриптору, на котором была открыта ссылка».Поэтому создание новой ссылки может «исправить» ее.Я не думал об этом больше пяти секунд, но это единственная немного хитрая вещь, которая приходит ко мне в полночь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...