#c #file-handling
Вопрос:
Предположим, у меня есть два приложения на C с именами «App1» и «App2». Теперь в приложении 1 я записываю данные в файл с именем «data.txt» и в приложении 2 я читаю тот же файл «data.txt» за его содержание.
Теперь мне нужно запустить оба приложения одновременно. Как я могу открыть файл «data.txt» в обоих местах одновременно проводить свои операции?
Ответ №1:
Это похоже на классическую XY-проблему. Что именно вы пытаетесь сделать? Существует ли файл только для того, чтобы эти программы могли взаимодействовать друг с другом? В этом случае кажется, что труба (или, может быть, розетка) была бы более подходящей.
Если происходит что-то еще, возможно, было бы лучше заблокировать файл и позволить одной программе подождать, пока другая выполнит свою задачу с этим файлом.
Ответ №2:
Не рекомендуется получать доступ к файлу с помощью нескольких процессов или потоков. Вы можете подумать о блокировке файлов или об обмене данными между двумя процессами.
Комментарии:
1. Дело в том, что я не могу применить блокировку файлов, так как в приложении для записи я считываю данные с COM-порта мобильного устройства и записываю эти данные в файл. Не могу остановить чтение части данных.