Как открыть файл в разных приложениях одновременно?

#c #file-handling

Вопрос:

Предположим, у меня есть два приложения на C с именами «App1» и «App2». Теперь в приложении 1 я записываю данные в файл с именем «data.txt» и в приложении 2 я читаю тот же файл «data.txt» за его содержание.

Теперь мне нужно запустить оба приложения одновременно. Как я могу открыть файл «data.txt» в обоих местах одновременно проводить свои операции?

Ответ №1:

Это похоже на классическую XY-проблему. Что именно вы пытаетесь сделать? Существует ли файл только для того, чтобы эти программы могли взаимодействовать друг с другом? В этом случае кажется, что труба (или, может быть, розетка) была бы более подходящей.

Если происходит что-то еще, возможно, было бы лучше заблокировать файл и позволить одной программе подождать, пока другая выполнит свою задачу с этим файлом.

Ответ №2:

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

Комментарии:

1. Дело в том, что я не могу применить блокировку файлов, так как в приложении для записи я считываю данные с COM-порта мобильного устройства и записываю эти данные в файл. Не могу остановить чтение части данных.