Все ли вызовы sync () блокируют все вызовы write () / read () / fwrite () / ...? - PullRequest
0 голосов
/ 29 июня 2018

Мое приложение является многопоточным (pthread) приложением c / c ++.

По некоторым причинам я должен позвонить sync() с unistd.h (вызов синхронизации будет блокироваться до нескольких секунд)

Другой поток выполняет некоторые операции с файловой системой. (fopen, fwrite, переименование и т. д.)

Что я видел, так это то, что операции файловой системы блокируются на некоторое время, пока выполняется команда sync().

По каким причинам блокируются другие операции с файловой системой? Конечно, синхронизация будет синхронизировать буферы с диском. ИМХО записи в файловую систему заблокированы при синхронизации. Правильно?

Что меня интересует: Какие звонки заблокированы? Файловые операции в одной файловой системе? Все файловые операции? Все функции основаны на системных вызовах Linux? Как насчет записи / чтения на таких устройствах, как /dev/ttyUSB0?

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