Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как при открытии файла указать способ блокировки?
|
|||
|---|---|---|---|
|
#18+
В книге Прохоренка Н.А. "Программирование на С++" на стр.427 для потоков ввода вывода std::ofstream, std::ifstream, std::fstream указана возможность задать способ блокировки открытых файлов. Но, работая под Linux (в Qt Creator) с этими объектами, система говорит мне, что у конструкторов и метода open() подобного параметра нет. А ведь параметр очень полезный! Как установить нужный уровень блокировки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2018, 15:28 |
|
||
|
Как при открытии файла указать способ блокировки?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLВ книге Прохоренка Н.А. "Программирование на С++" на стр.427 для потоков ввода вывода std::ofstream, std::ifstream, std::fstream указана возможность задать способ блокировки открытых файлов. Но, работая под Linux (в Qt Creator) с этими объектами, система говорит мне, что у конструкторов и метода open() подобного параметра нет. А ведь параметр очень полезный! Как установить нужный уровень блокировки? и какие методы автор описывает? а то у меня именно эта страница вырвана ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2018, 15:39 |
|
||
|
Как при открытии файла указать способ блокировки?
|
|||
|---|---|---|---|
|
#18+
AlekseySQL, Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2018, 15:42 |
|
||
|
Как при открытии файла указать способ блокировки?
|
|||
|---|---|---|---|
|
#18+
Ролг Хупини какие методы автор описывает? а то у меня именно эта страница вырвана Повторюсь: у конструкторов std::ofstream, std::ifstream, std::fstream и метода open() Прохоренок приводит дополнительный параметр, задающий способ блокировки. Код: plaintext 1. 2. 3. 4. 5. Это уже не С++. Кстати, а почему в своей чудо- книжке Прохоренок говорит, что желательно не пользоваться системой ввода/вывода С? Какой в ней изъян? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2018, 15:54 |
|
||
|
Как при открытии файла указать способ блокировки?
|
|||
|---|---|---|---|
|
#18+
Это отсебятина от MS работает только в MSVC. https://msdn.microsoft.com/ru-ru/library/k7hz8258.aspx#basic_ifstream__open void open( const wchar_t* _Filename, ios_base::openmode _Mode = ios_base::in, int _Prot = (int)ios_base::_Openprot); ... _Prot The default file opening protection, equivalent to the shflag parameter in _fsopen, _wfsopen. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2018, 16:04 |
|
||
|
Как при открытии файла указать способ блокировки?
|
|||
|---|---|---|---|
|
#18+
Мой склероз нашёптывает, что хрюниксах вообще непросто с блокировками ... P.S. Какая может быть блокировка записи, если в любой момент можно делать unlink файлу, на которые есть права??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2018, 16:06 |
|
||
|
Как при открытии файла указать способ блокировки?
|
|||
|---|---|---|---|
|
#18+
Dima TЭто отсебятина от MS работает только в MSVC. Мой склероз также нашептывает, что у sopen этот параметр черти с каких годов Поискал в google, он уже с DOS 3, плюс встречается в коде open-watcom-v2 Также поискал в google с учетом слова Unix... Вполне встречается в книжках по POSIX, QNX etc... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2018, 16:32 |
|
||
|
Как при открытии файла указать способ блокировки?
|
|||
|---|---|---|---|
|
#18+
Я правильно понимаю, что с помощью потоков С++ файл открывается так, что любой поток может туда что-то писать (т.е. без блокировки)? И как следствие при всех последующих операциях должна выполняться дополнительная синхронизация по потокам (чтобы при закрытии одним потоком, второй ничего не писал или чтобы два потока не писали одновременно...). Другими словами это понижает скорость всех операций ввода/вывода. Верно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2018, 16:53 |
|
||
|
Как при открытии файла указать способ блокировки?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLВерно?У вас, как я посмотрю, талант, делать неверные выводы ... Режимы блокировки существенны тогда, когда предполагается, например, что у файла будет не более одного читателя. P.S. Вам, вроде, уже советовали упорядочить работу с файловой системой в отдельном потоке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2018, 17:04 |
|
||
|
Как при открытии файла указать способ блокировки?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLВ книге Прохоренка Н.А. "Программирование на С++" на стр.427 для потоков ввода вывода std::ofstream, std::ifstream, std::fstream указана возможность задать способ блокировки открытых файлов. Но, работая под Linux (в Qt Creator) с этими объектами, система говорит мне, что у конструкторов и метода open() подобного параметра нет. А ведь параметр очень полезный! Как установить нужный уровень блокировки? Возможность блокировать открытый файл в стандартной библиотеке С до 17 (кажется) года отсутствовала. Существовали только нестандартные расширения (флаги) для указания блокировки открываемых файлов. Только в 17-ом она была добавлена в стандарт С. В С++ ещё не успели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2018, 17:13 |
|
||
|
Как при открытии файла указать способ блокировки?
|
|||
|---|---|---|---|
|
#18+
MasterZivВозможность блокировать открытый файл в стандартной библиотеке С до 17 (кажется) года отсутствовала. Существовали только нестандартные расширения (флаги) для указания блокировки открываемых файлов. Только в 17-ом она была добавлена в стандарт С. В С++ ещё не успели. Спасибо, я правильно понимаю, что сейчас файл открывается без какой- либо блокировки? Т.е. другой поток также может открыть этот файл и что-то параллельно читать/писать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2018, 09:02 |
|
||
|
Как при открытии файла указать способ блокировки?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLСпасибо, я правильно понимаю, что сейчас файл открывается без какой- либо блокировки? Т.е. другой поток также может открыть этот файл и что-то параллельно читать/писать. Твой файл в твоей программе открывается так, как ты написал. Я не могу сказать, открывается ли он с или без блокировок. Если ты имеешь в виду, как открывается файл, если ты его открываешь через STD filestream, то да, он по умолчанию открывается без защиты от открытия его другими приложениями. Но это можно переделать, задействовав нестандартные расширения библиотек С и С++ от конкретного компилятора. Если ты этого не делаешь, то скорее всего файл может быть разделяемым во время работы с ним твоего приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2018, 12:08 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=20&tid=2017906]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 282ms |
| total: | 416ms |

| 0 / 0 |
