![]() |
|
Модераторы: bsa |
![]()
|
|
| asmdzen |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 28.11.2010 Репутация: 3 Всего: 5 |
Программа пишет на диск несколько файлов одновременно, заранее известен размер файлов, есть какое нибудь кросс платформенное решение записать эти файлы на диск с минимальной фрагментацией?
как то увеличить буфер в которым хранятся данные перед записью на диск? если кросс платформенного подхода нет, может кто покажет это решение для винды/линукса? |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
для Linux:
>man 2 truncate >man 2 ftruncate |
|||
|
||||
| asmdzen |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 28.11.2010 Репутация: 3 Всего: 5 |
то что нужно, не устраивает только то что освобожденное пространство заполняется нолями ( сколько времени займет создание файла например в 1ГБ? я раньше после создания файла записывал ноль в его последний байт (seek, write), но я не знаю как система работает и потому понятия не имею освободится ли все место под файл или только два фрагмента (стартовый и последний в котором я пишу один байт). |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
зачем ты спрашиваешь? проверь! |
|||
|
||||
| asmdzen |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 28.11.2010 Репутация: 3 Всего: 5 |
boostcoder, это была риторика ))
просто если я создам дюжину таких файлов (возможно с размером побольше), это разве не убьет мой поток на некоторое время? пишу под виндой, нет никакой возможности проверить под линухом, но код все равно запишу ) |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
наверное забавно писать код который не можешь проверить.
|
|||
|
||||
| spyswamp |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 349 Регистрация: 18.8.2006 Репутация: 1 Всего: 7 |
asmdzen, поставь virtual box (он бесплатный) и arch linux туда какой-нибудь или ubuntu. Очень хорошая и, главное, простая виртуальная машина. Зато тестировать все сможешь. Времени на скачивание/установку/настройку и т.п. займет минут 20-30 + время инсталла ОС.
-------------------- - why you call it beta? - cuz it's betta then nothin' |
|||
|
||||
| asmdzen |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 28.11.2010 Репутация: 3 Всего: 5 |
можешь дать реальную ссылку на него, чтоб жрал минимум ресурсов? пробовал несколько раз установить разные версии линуха - результат разочаровывал каждый раз, теряю целый день а в конце система так и не установлена поскольку видите ли ей не хватило еще 1ТБ места на диске ) конечно в конце концов придется установить, программу тестить ведь надо )) |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Сколько я линуксы ни ставил (начиная с Mandrake в начале 2000-х и Gentoo с 2005 года), но никогда они не требовали столько места. Под систему можешь выделить 6-10 ГБ в виртуальной машине (если же хочешь установить на другой раздел основного диска, то выделить рекомендую не менее 20 ГБ). У меня стоит убунта и особых проблем не знаю. |
|||
|
||||
| asmdzen |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 28.11.2010 Репутация: 3 Всего: 5 |
да я так прикололся, на самом деле я выделил в виртуалке где то 5ГБ (винт маленький был), устанавливал Debian где то пол дня, в конце оказалось что ему не хватает каких то 500 МБ чтоб установить оконный интерфейс, вот я и забросил это дело, думаю программу допишу чтоб под виндой работала потом уже линукс установлю, но все же это придется сделать ) мне нужна самая легкая версия чтоб можно было проект скомпилировать и потестить, все остальные навороты пока не к чему. попробую arch. Это сообщение отредактировал(а) asmdzen - 29.7.2011, 14:12 |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
если у тебя прога без ГУИ, то и ставить его поддержку необходимости нет никакой. *nix - это тебе не Windows/DOS, в которых через консоль хрен что сделаешь.
|
|||
|
||||
| asmdzen |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 28.11.2010 Репутация: 3 Всего: 5 |
GUI на wxwidgets
ненавижу работать с системой, мой принцип: установил - работает. в винде у меня стоит Тотал Командер, VC и CodeBlocks, это все. Не очень хочется выучивать все линуховские команды, хотя знаю что пригодятся. |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: нет Всего: 88 |
для винды SetEndOfFile
-------------------- Обижено школьников: 8 |
|||
|
||||
| spyswamp |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 349 Регистрация: 18.8.2006 Репутация: 1 Всего: 7 |
asmdzen, https://wiki.archlinux.org/index.php/Offici...x_Install_Guide
Я недавно заводил на virtual-box'е арк + кеды. Делал, кстати, динамический раздел для ОС с минимальным размером 10Гб. Даже близко весь его не забил, но если надо он сам пополнится. Там же всего 1 файл с машиной получается. Главное, чтобы он лежал на винте, где места хватит. Но раз у тебя есть GUI, то я рекомендую не заморачиваться с арком и ставить убунту - времени меньше уйдет, проверено. -------------------- - why you call it beta? - cuz it's betta then nothin' |
|||
|
||||
| asmdzen |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 28.11.2010 Репутация: 3 Всего: 5 |
bems, спасибо. Вот только он хочет HANDLE, теперь надо будет открывать файлы при помощи CreateFile я так понимаю.
а есть какие то функции для увеличения буфера записи данных на диск? желательно из с++, как именно нужно работать с файлами чтоб можно было изменять размер буфера (iostreams, fopen, open)? например у меня записываются 100 маленьких файлов (~100кБ), нужно увеличить буфер так чтоб они записались разом на диск или хотя бы по завершении записи (close). spyswamp, где ты раньше был? я уже скачал и устанавливаю Arch ) да ладно, не получится попробую Убунту. Это сообщение отредактировал(а) asmdzen - 29.7.2011, 15:02 |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |