Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> запись множества файлов без фрагментов, как освободить место под целый файл? 
V
    Опции темы
asmdzen
Дата 28.7.2011, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



**


Профиль
Группа: Участник
Сообщений: 345
Регистрация: 28.11.2010

Репутация: 3
Всего: 5



Программа пишет на диск несколько файлов одновременно, заранее известен размер файлов, есть какое нибудь кросс платформенное решение записать эти файлы на диск с минимальной фрагментацией?
как то увеличить буфер в которым хранятся данные перед записью на диск?
если кросс платформенного подхода нет, может кто покажет это решение для винды/линукса?
PM MAIL   Вверх
boostcoder
Дата 28.7.2011, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 20
Всего: 110



для Linux:
>man 2 truncate
>man 2 ftruncate

PM WWW   Вверх
asmdzen
Дата 28.7.2011, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



**


Профиль
Группа: Участник
Сообщений: 345
Регистрация: 28.11.2010

Репутация: 3
Всего: 5



Цитата(boostcoder @  28.7.2011,  20:36 Найти цитируемый пост)
ftruncate

то что нужно, не устраивает только то что освобожденное пространство заполняется нолями (
сколько времени займет создание файла например в 1ГБ?
я раньше после создания файла записывал ноль в его последний байт (seek, write), но я не знаю как система работает и потому понятия не имею освободится ли все место под файл или только два фрагмента (стартовый и последний в котором я пишу один байт).
PM MAIL   Вверх
boostcoder
Дата 28.7.2011, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 20
Всего: 110



Цитата(asmdzen @  28.7.2011,  20:48 Найти цитируемый пост)
сколько времени займет создание файла например в 1ГБ?

зачем ты спрашиваешь? проверь!
PM WWW   Вверх
asmdzen
Дата 28.7.2011, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



**


Профиль
Группа: Участник
Сообщений: 345
Регистрация: 28.11.2010

Репутация: 3
Всего: 5



boostcoder, это была риторика ))
просто если я создам дюжину таких файлов (возможно с размером побольше), это разве не убьет мой поток на некоторое время?
пишу под виндой, нет никакой возможности проверить под линухом, но код все равно запишу )
PM MAIL   Вверх
boostcoder
Дата 28.7.2011, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 20
Всего: 110



наверное забавно писать код который не можешь проверить.
PM WWW   Вверх
spyswamp
Дата 29.7.2011, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 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'
PM MAIL   Вверх
asmdzen
Дата 29.7.2011, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



**


Профиль
Группа: Участник
Сообщений: 345
Регистрация: 28.11.2010

Репутация: 3
Всего: 5



Цитата(spyswamp @  29.7.2011,  09:51 Найти цитируемый пост)
arch linux туда какой-нибудь

можешь дать реальную ссылку на него, чтоб жрал минимум ресурсов? пробовал несколько раз установить разные версии линуха - результат разочаровывал каждый раз, теряю целый день а в конце система так и не установлена поскольку видите ли ей не хватило еще 1ТБ места на диске )
конечно в конце концов придется установить, программу тестить ведь надо ))
PM MAIL   Вверх
bsa
Дата 29.7.2011, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(asmdzen @  29.7.2011,  10:01 Найти цитируемый пост)
можешь дать реальную ссылку на него, чтоб жрал минимум ресурсов? пробовал несколько раз установить разные версии линуха - результат разочаровывал каждый раз, теряю целый день а в конце система так и не установлена поскольку видите ли ей не хватило еще 1ТБ места на диске )

 smile 
Сколько я линуксы ни ставил (начиная с Mandrake в начале 2000-х и Gentoo с 2005 года), но никогда они не требовали столько места. Под систему можешь выделить 6-10 ГБ в виртуальной машине (если же хочешь установить на другой раздел основного диска, то выделить рекомендую не менее 20 ГБ).
У меня стоит убунта и особых проблем не знаю.
PM   Вверх
asmdzen
Дата 29.7.2011, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



**


Профиль
Группа: Участник
Сообщений: 345
Регистрация: 28.11.2010

Репутация: 3
Всего: 5



Цитата(bsa @  29.7.2011,  11:31 Найти цитируемый пост)
никогда они не требовали столько места

да я так прикололся, на самом деле я выделил в виртуалке где то 5ГБ (винт маленький был), устанавливал Debian где то пол дня, в конце оказалось что ему не хватает каких то 500 МБ чтоб установить оконный интерфейс, вот я и забросил это дело, думаю программу допишу чтоб под виндой работала потом уже линукс установлю, но все же это придется сделать )
мне нужна самая легкая версия чтоб можно было проект скомпилировать и потестить, все остальные навороты пока не к чему.
попробую arch.

Это сообщение отредактировал(а) asmdzen - 29.7.2011, 14:12
PM MAIL   Вверх
bsa
Дата 29.7.2011, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



если у тебя прога без ГУИ, то и ставить его поддержку необходимости нет никакой. *nix - это тебе не Windows/DOS, в которых через консоль хрен что сделаешь.
PM   Вверх
asmdzen
Дата 29.7.2011, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



**


Профиль
Группа: Участник
Сообщений: 345
Регистрация: 28.11.2010

Репутация: 3
Всего: 5



Цитата(bsa @  29.7.2011,  14:23 Найти цитируемый пост)
если у тебя прога без ГУИ

GUI на wxwidgets

Цитата(bsa @  29.7.2011,  14:23 Найти цитируемый пост)
*nix - это тебе не Windows/DOS, в которых через консоль хрен что сделаешь. 

ненавижу работать с системой, мой принцип: установил - работает. в винде у меня стоит Тотал Командер, VC и CodeBlocks, это все. Не очень хочется выучивать все линуховские команды, хотя знаю что пригодятся.
PM MAIL   Вверх
bems
Дата 29.7.2011, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: нет
Всего: 88



для винды SetEndOfFile


--------------------
Обижено школьников: 8
PM MAIL   Вверх
spyswamp
Дата 29.7.2011, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 349
Регистрация: 18.8.2006

Репутация: 1
Всего: 7



asmdzen, https://wiki.archlinux.org/index.php/Offici...x_Install_Guide
Я недавно заводил на virtual-box'е арк + кеды. Делал, кстати, динамический раздел для ОС с минимальным размером 10Гб. Даже близко весь его не забил, но если надо он сам пополнится. Там же всего 1 файл с машиной получается. Главное, чтобы он лежал на винте, где места хватит. Но раз у тебя есть GUI, то я рекомендую не заморачиваться с арком и ставить убунту - времени меньше уйдет, проверено. smile Т.к. в арке ставится сначала тупо ядро, потом иксы и т.п. Короче, лучше не париться и ставить debian/ubuntu. smile


--------------------
- why you call it beta?
- cuz it's betta then nothin'
PM MAIL   Вверх
asmdzen
Дата 29.7.2011, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



**


Профиль
Группа: Участник
Сообщений: 345
Регистрация: 28.11.2010

Репутация: 3
Всего: 5



bems, спасибо. Вот только он хочет HANDLE, теперь надо будет открывать файлы при помощи CreateFile я так понимаю.
а есть какие то функции для увеличения буфера записи данных на диск? желательно из с++, как именно нужно работать с файлами чтоб можно было изменять размер буфера (iostreams, fopen, open)?
например у меня записываются 100 маленьких файлов (~100кБ), нужно увеличить буфер так чтоб они записались разом на диск или хотя бы по завершении записи (close).

spyswamp, где ты раньше был? я уже скачал и устанавливаю Arch ) да ладно, не получится попробую Убунту.

Это сообщение отредактировал(а) asmdzen - 29.7.2011, 15:02
PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0541 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.