я не понимаю.
Я написал многопоточный загрузчик файлов. Он делит файл на несколько частей, скачивает каждую часть в отдельный файл. Когда все части скачались, они склеиваются в один целый файл, а части удаляются.
Провожу тесты. Под линуксом никаких ошибок нет, весь алгоритм работает нормально.
а в windows ошибка то появляется то работает нормально. на стадии удаления частей появляется ошибка "the process cannot access the file because it is being used by another process". Это какой то процесс винды не дает удалять или как найти ошибку?
https://github.com/mallvielfrass/GoDloader/blob/master/example/main.go
как по мне — в целом опасные манипуляции ) даже банальную проверку хешсуммы, что файл не битый не сделать
так может ты сам себя и блочишь? винда в этом плане построже линукса (в линуксе ты можешь "удалить" файл, даже если он используется другим процессом. дискриптор, понятное дело, будет открыт)
горутина 1 лезет в файл, который был открыт и не был закрыт в горутине 2 ?
Обсуждают сегодня