Все ли вызовы sync() блокируют все вызовы write()/read()/fwrite()/...?

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

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

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

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

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

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

0 ответов

Другие вопросы по тегам