Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Много потоков, один файл, сколько


Автор: EnergoHokum 12.7.2007, 12:53
Подскажите, если один файл открыть несколькими потоками используя fopen, указатель на текущую точку (fpos_t, курсор) будет один или по курсору на поток?

Автор: bsa 12.7.2007, 12:59
Из определения потоков - один.

Автор: EnergoHokum 12.7.2007, 13:05
То есть, если я в одном потоке говорю fseek(), то у остальных курсор тоже должен сдвинуться?

Автор: JUmPER 12.7.2007, 13:10
fseek(), в итоге, воздействует на данные в таблице открытых файлов,
доступ осуществляется по одному дескриптору
=>
сдвинется у всех

PS: правда, остаётся открытым вопрос о буфферизации уровнем выше:
будет ли синхронизация?

Автор: W4FhLF 12.7.2007, 13:12
Не проще ли будет проверить? 

Автор: EnergoHokum 12.7.2007, 13:13
Доступ к файлу разруливаю через mutex, ты это имел в виду под синхронизацией?

Добавлено через 1 минуту и 11 секунд
Уже, блин, целый день проверяю, за*** (устал) проверять.

Автор: JUmPER 12.7.2007, 13:49
Цитата(EnergoHokum @  12.7.2007,  13:13 Найти цитируемый пост)
ты это имел в виду под синхронизацией?

нет, я о валидности данных в буферах 

fopen - это же надстройка над системным вызовом,
она имеет свой буфер.

Автор: EnergoHokum 13.7.2007, 14:26
Ффух! Вроде получил то, что надо, теперь со спокойной душой можно отдохнуть. Всем спасибо!!!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)