Синхронизация файлов с мьютексом - PullRequest
1 голос
/ 31 января 2012

В C (Linux и Windows), если я хочу управлять «идеальным» одновременным доступом к файлу, например:

  1. A открывает файл и начинает писать что-то,
  2. B открывается,в то же время тот же файл и ожидает, когда A завершит свою работу
  3. A закрывает файл.
  4. B может записать сейчас.
  5. ... и так далее...

Как вы думаете, я должен использовать мьютекс?Должен ли O_EXCL работать тоже?Лучшие варианты?

Ответы [ 2 ]

1 голос
/ 31 января 2012

, если A и B - разные потоки, для достижения синхронизации между ними можно использовать мьютекс или симафоры. Вы можете найти больше информации о мьютексе на http://www.yolinux.com/TUTORIALS/LinuxTutorialPosixThreads.html

1 голос
/ 31 января 2012

Являются ли потоки или программы A и B?

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

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