У меня есть две программы, которые открывают один и тот же файл в режиме «w». Возвращаемые указатели файлов одинаковы в обоих случаях. Я понял, что этого не должно произойти. Я ошибаюсь?два приложения, открывающие один файл одновременно
ответ
Вам необходимо управлять параллелизмом. Если 2 разных программы или потоки обращаются к одному ресурсу, им необходимо управлять для доступа к ресурсу (в данном случае файлу) с взаимоисключающим условием.
То, что одновременное открытие файла для записи может привести к плохим условиям гонки, и проблемы синхронизации уже упоминались.
На ваш вопрос: fopen
возвращает указатель на структуру FILE
. Эта структура распределяется в области частной памяти приложения. В настоящее время каждый процесс имеет собственное независимое пространство (virtual) memory address (отображаемое операционной системой на адреса реальной памяти). Поэтому, если один и тот же адрес памяти используется в двух независимых программах, обычно реальная память позади не то же самое.
В структуре FILE существует дескриптор файла (целочисленный), который предоставляется операционной системой для идентификации файла, но дескрипторы файлов (по крайней мере, в Unix-подобных системах) являются специфическими для приложения, поэтому, даже если они равны, это ничего не значит.
- 1. Один .apk файл, который устанавливает два приложения
- 2. Два угловых приложения на одной странице - только один работает одновременно
- 3. Написать один значение два текстовых файлов одновременно
- 4. Два приложения, одновременно получающие доступ к GPS
- 5. Ошибки, открывающие файл в c
- 6. Два сервера Pakyow одновременно
- 7. Два приложения, один (MongooseJS) MongoDB
- 8. Может Ant запустить два приложения Java одновременно?
- 9. Как запустить два метеора приложения одновременно
- 10. Как отлаживать два приложения одновременно в xcode?
- 11. Два приложения pjsua одновременно на Android
- 12. Сериализуйте одновременно два arraylists
- 13. Два 2D-массива, два матрица, один файл
- 14. Boot2Docker mannaging ports и открывающие веб-приложения
- 15. Два UIViewController, один XIB Файл
- 16. Как написать один файл одновременно в Java
- 17. Труба много выходов в один файл одновременно?
- 18. работает два процесса одновременно
- 19. Два регистратора, записывающих в один файл
- 20. Два контроллера одновременно?
- 21. threepenny-gui - открывающие файлы
- 22. Два пользователя одновременно записывают файл в файл? (PHP/file_put_contents)
- 23. Два жесты распознаются одновременно
- 24. Один проект Xcode, две цели, два приложения, два файла Default.png?
- 25. Решено: Прочитайте два файла одновременно и создайте один из них
- 26. Заменить (инвертировать) открывающие и закрывающие кронштейны за один проход
- 27. Выполнять два бесконечных процесса одновременно
- 28. Выполнять два потока одновременно
- 29. Сменить два фрагмента одновременно
- 30. Два веб-камеры одновременно
неправильный в каком смысле? – Aziz
Не понимаю, что вы подразумеваете под: «Возвращенные указатели файлов одинаковы в обоих случаях». И вы должны посмотреть «состояние гонки». Вы можете столкнуться с большими проблемами, когда одно и то же пространство записывается из нескольких потоков/приложений/.. в то же время – chikuba
Что произойдет, если обе программы попытаются записать в один и тот же файл одновременно? –