Size: a a a

2020 March 19

V🤔

Vyacheslav 🤔 in pro.cxx
В общем, странно всё это. С утра попробую ещё раз с указателем создать и посмотреть, чем забивается память
источник

TK

Tetyana K in pro.cxx
Vyacheslav 🤔
В общем, странно всё это. С утра попробую ещё раз с указателем создать и посмотреть, чем забивается память
Ну, если что - пиши, интересно узнать, чем всё закончилось
А вообще, можешь просто сравнить бинарники objdump-ом, если у тебя Линукс
источник

TK

Tetyana K in pro.cxx
А то гадание на кофейной гуще
источник

M

MDenis2k in pro.cxx
Никто не сталкивался? Windows, процесс запускает потоки ~ по числу ядер * 2. Все нити заняты запуском внешних консольных процессов, с сохранением stdout в файлы. После запуска каждого процесса идёт попытка открыть файл в который сохранился stdout для анализа что там получилось. Проблема: Windows может до 10 минут возвращать AccessDenied на попытку открыть эти файлы с выводом (уже после того как сами процессы завершились) (если продолжать попытки долго, то в итоге файлы откроются). FlushFileBuffers() не помогает, файловые хендлы честно закрываем...
источник

АВ

Александр Водянников in pro.cxx
Ну ты посмотри(правда не помню чем/как) - открытые хэндлы
источник

АВ

Александр Водянников in pro.cxx
Может они и не закрываются
источник

M

MDenis2k in pro.cxx
Александр Водянников
Может они и не закрываются
По taskManager-у число открытых хендлов стабильно. Т.е. ликов нет
источник

АВ

Александр Водянников in pro.cxx
MDenis2k
По taskManager-у число открытых хендлов стабильно. Т.е. ликов нет
А вручную попробуй эти файлы открыть ?
источник

АВ

Александр Водянников in pro.cxx
С проводника или другого FM
источник

АВ

Александр Водянников in pro.cxx
По идее FlushFileBuffers() не надо если закрываешь файл.
источник

M

MDenis2k in pro.cxx
Александр Водянников
А вручную попробуй эти файлы открыть ?
"AccessDenied - файл зажат таким-то процессом"
источник

AS

Anatoly Shirokov in pro.cxx
MDenis2k
Никто не сталкивался? Windows, процесс запускает потоки ~ по числу ядер * 2. Все нити заняты запуском внешних консольных процессов, с сохранением stdout в файлы. После запуска каждого процесса идёт попытка открыть файл в который сохранился stdout для анализа что там получилось. Проблема: Windows может до 10 минут возвращать AccessDenied на попытку открыть эти файлы с выводом (уже после того как сами процессы завершились) (если продолжать попытки долго, то в итоге файлы откроются). FlushFileBuffers() не помогает, файловые хендлы честно закрываем...
антивирус не чудит?
источник

M

MDenis2k in pro.cxx
Anatoly Shirokov
антивирус не чудит?
На этот каталог исключение воткнули. Не помогает... Думал может какой "известный момент Windows"... Но пока нигде не нашёл подтверждения
источник

AS

Anatoly Shirokov in pro.cxx
MDenis2k
На этот каталог исключение воткнули. Не помогает... Думал может какой "известный момент Windows"... Но пока нигде не нашёл подтверждения
тогда смотри чем держит https://docs.microsoft.com/en-us/sysinternals/downloads/handle
источник

АВ

Александр Водянников in pro.cxx
Блокнотом или там Far-ом можешь открыть/посмотреть ?
источник

M

MDenis2k in pro.cxx
Александр Водянников
Блокнотом или там Far-ом можешь открыть/посмотреть ?
Нет. Не открывает. Говорит "зажат" (нашим процессом). Но мы его "100 пудово" закрываем (всё в RAII обёрнуто). Число Хендлов стабильно и не течет в долгосрочной перспективе (основной процесс работает "часами").
источник

АВ

Александр Водянников in pro.cxx
Значит смотри кто держит - выше ссылку дали.
источник

АВ

Александр Водянников in pro.cxx
Кстати - как открываешь/закрываешь ?
источник

M

MDenis2k in pro.cxx
Александр Водянников
Кстати - как открываешь/закрываешь ?
fopen насколько помню. (Пишем через WinAPI CreateFile(), Write())
источник

АВ

Александр Водянников in pro.cxx
т.е. цепочка такая - CreateFile() -> Write() -> CloseHandle() ?
источник