|
|
|
закрыть STL поток на время, пока он не активен.
|
|||
|---|---|---|---|
|
#18+
моя программка работает как сервис. она ведет свой лог. в программе это выглядит примерно так. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. к несчастью, мне иногда нужно снести лог, когда программка работает (а она работает 24x7, и останавливать ее не желательно.) но Windows не позволяет удалить лог, т.к. он всегда открыт. можно ли в открывать файл только на то время, когда в него идет запись? (например, закрывать при каждом flush, а потом снова открывать) как это сделать с минимальными изменениями в программе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2003, 17:21 |
|
||
|
закрыть STL поток на время, пока он не активен.
|
|||
|---|---|---|---|
|
#18+
STL с потоками не дружит. Все делать надо ручками. Посмотри справку на CreateFile может тебе повезёт и с FILE_SHARE_DELETE в третьем параметре - получишь нужный результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 10:51 |
|
||
|
закрыть STL поток на время, пока он не активен.
|
|||
|---|---|---|---|
|
#18+
2Cactus STL с потоками не дружит. Все делать надо ручками. Силное заявление - модежет еще и аргументы найдутся 2ProgramMaker Ну так бери и закрывай - а затем, когда нужно, снова отрывай - в чем проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 11:01 |
|
||
|
закрыть STL поток на время, пока он не активен.
|
|||
|---|---|---|---|
|
#18+
2 Cactus да, с CreateFile результат получился нужный, спасибо. а нельзя ли теперь сделать магические махинации? handle преобразовать в дескриптор файла, а затем в поток? 2 funikovyuri проблема в том, что программа уже написана о отлажена. не очень хочется вносить исправления. как раз "когда нужно" означает "в разных местах программы". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 11:53 |
|
||
|
закрыть STL поток на время, пока он не активен.
|
|||
|---|---|---|---|
|
#18+
To funikovyuri "Эффективное использование STL" Скотт Мейерс ISBN 5-94723-382-7 Совет 12 "Разумно оценивайте потоковую безопасность контейнеров STL" стр. 64 "...в решегии проблем многопоточности не стоит полагаться на реализацию STL. Вместо этого в потобных случаях следует самостоятельно синхронизовать доступ." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 13:00 |
|
||
|
закрыть STL поток на время, пока он не активен.
|
|||
|---|---|---|---|
|
#18+
To ProgramMaker Не понимаю цели магии. И страшно подстрекать к такому колдовству. Посмотри справку на _open_osfhandle _fileno _get_osfhandle но я не уверен, что поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 13:18 |
|
||
|
закрыть STL поток на время, пока он не активен.
|
|||
|---|---|---|---|
|
#18+
2Cactus Скотт Мейерс это конечно авторитет - только ты по ходу дела thread с stream попутал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 13:38 |
|
||
|
закрыть STL поток на время, пока он не активен.
|
|||
|---|---|---|---|
|
#18+
>Совет 12 >"Разумно оценивайте потоковую безопасность контейнеров STL" >стр. 64 >"...в решегии проблем многопоточности не стоит полагаться на реализацию >STL. Вместо этого в потобных случаях следует самостоятельно >синхронизовать доступ." Полностью согласен. В стандартном STL ( в других не знаю ) при доступе к map, vector и другим объектам используется ОДНА критическая секция. Не знаю чем руководствовались разработчики, но в итоге если не "самостоятельно >синхронизовать доступ" можно получить различный геммор, в виде deadlock'ов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 13:57 |
|
||
|
закрыть STL поток на время, пока он не активен.
|
|||
|---|---|---|---|
|
#18+
Tracer - ты топик вообще читал - какая потоковая безопасность - где тут многопоточность? Ну че лезть не врубившись? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 14:05 |
|
||
|
закрыть STL поток на время, пока он не активен.
|
|||
|---|---|---|---|
|
#18+
к слову - руководствовались они эффективностью Потом - что такое стандартная STL? Это от HP что-ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 14:07 |
|
||
|
закрыть STL поток на время, пока он не активен.
|
|||
|---|---|---|---|
|
#18+
To funikovyuri А разве std::ofstream не контейнер? Вопрос ProgramMaker можно понять, так Как с std::ofstream работать в разных threads или процессах? Согласен в том, что при переводе на русский терминов "thread" и "stream" может возникнуть путаница. Но фраза "STL не дружит с std::ofstream" глупа сама по себе и подразумевалось, что из контекста понятно о чём идет речь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 14:07 |
|
||
|
закрыть STL поток на время, пока он не активен.
|
|||
|---|---|---|---|
|
#18+
2Cactus Вопрос ProgramMaker можно понять, так Как с std::ofstream работать в разных threads или процессах? закрыть STL поток на время, пока он не активен. Ну если ты его так понял - тогда без проблем - только если не сложно поясни мне - где ты у него про threads прочитал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 14:14 |
|
||
|
закрыть STL поток на время, пока он не активен.
|
|||
|---|---|---|---|
|
#18+
Да, к стати, лютель Мейерса std::ofstream - это поток (stream) - а не контейнер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 14:16 |
|
||
|
закрыть STL поток на время, пока он не активен.
|
|||
|---|---|---|---|
|
#18+
>Tracer - ты топик вообще читал - какая потоковая безопасность - где тут многопоточность? Ну че лезть не врубившись? Вообще то я отвечал на конкретное сообщение. >к слову - руководствовались они эффективностью И в чем же она проявляется ? Если все равно приходится заводить дополнительные критические секции ? >Потом - что такое стандартная STL? Это от HP что-ли? да ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 14:28 |
|
||
|
закрыть STL поток на время, пока он не активен.
|
|||
|---|---|---|---|
|
#18+
2Tracer И в чем же она проявляется ? Если все равно приходится заводить дополнительные критические секции ? Не ну вы тут все грамотные Мейерса читали - у него как раз про это тоже много чего написано ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 14:42 |
|
||
|
|

start [/forum/topic.php?fid=57&tid=2035788]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 398ms |

| 0 / 0 |
