Я открываю файл в С++ (F.open(put);). Далее я читаю оттуда данные, и после этого я уже не использую файл, но я хочу, чтобы до завершения работы программы этот файл никто не смог бы редактировать, кроме моей программы.
Можно ли в этом случае просто не закрывать файл до окончания работы программы, или в этом есть какие-то свои подводные камни?
Взаимодействие с объектами операционной системы зависят от операционной системы. Файлы - объекты операционной системы. Все упирается в средства, которыми Вы взаимодействуете с оперционной системой, позволяют ли они тонко настраивать, или нет. Любые библиотеки (boost.filesystem или базовые средства языка, или что-то еще) - являются обертками над функциями операционной системы для взаимодействия с файлами.
В Windows есть функция CreateFile, которая позволяет управлять, будет ли файл доступен сторонним приложениям, или нет. Аналогичное есть (должно быть :) ) в любой операционной системе. Хорошие обертки над функциями ОС или тоже позволяют это настраивать, или, для реализации единообразности взаимодействия с разными ОС, немного урезают функционал, оставляя только то, что поддерживается большинством ОС.
Лично я F.Open
не узнаю, т.е. не могу судить об этой библиотеке.
Отвечая на вопрос: ничто не мешает Вашему ПО создавать объект ядра с теми настройками владения, какие Вам нужны, и держать его, сколько необходимо.
Лучше сразу закрывать всегда, как только прекращаете работу с файлом.
Я не уверена, но думаю, что его всё равно смогут редактировать, даже если он не закрыт. Проведите простой опыт: запустите программу в отладке и до f.close() попытайтесь открыть его вручную, изменить и сохранить эти изменения, и вы найдёте ответ на ваш вопрос.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
На вход подается описание бинарного дереваНа листьях (висячих вершинах) этого дерева написаны целые числа (от -10^6 до 10^6)
Есть такая проблема: имеется иерархия классовВ производных появляются новые методы
Программа должна выводить, сколько раз каждое слово встречается в строке, но этого не происходитВот код: