Форум программистов, компьютерный форум CyberForum.ru

Считывание файла с CD-ROM c миганием лампочки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как скопировать файл из одной папки в другую? http://www.cyberforum.ru/cpp-beginners/thread489830.html
Люди, помогите!!! Как скопировать файл из одной папки в другую? Только построчно или есть какая-то функция? Еще заморочка - этой файл во время копирования обрабатывается другой прожкой, которую нельзя останавливать. Что делать?????
C++ Когда закрывать описатель созданного потока? Можно ли после создания потока сразу же закрывать его описатель: HANDLE hThread = (HANDLE)_beginthreadex(...); CloseHandle(hThread); ? И вообще, когда закрывать описатель созданного потока, если неизвестно заранее когда он прекратит работу? http://www.cyberforum.ru/cpp-beginners/thread489763.html
Буферы устройств, Windows 2k-XP и управление ими C++
Вопрос 1: Как я понял из литературы, у устройств, например HDD и CDROM, есть внутренние буферы. Управление буферами устройств, видимо, возможно через регистры. Есть ли какие-нибудь универсальные утилиты, которые позволяют управлять размерами внутренних буферов устройств? Вопрос 2: Как я понял из литературы, Windows для осуществления операций ввода-вывода создает в оперативной (виртуальной...
C++ Вывод символов выше 127 (математические, немецкие и т.п)
Вообщем такая вот трабла. Надо выводить символы выше 127 (математические, немецкие и т.п) Как, как это делается в VC++... Плиз кто что знает, скажите .... Заранее спасибо!
C++ Как по клавише прекратить (приостановить) запись в файл? http://www.cyberforum.ru/cpp-beginners/thread489602.html
Консольное приложение VC6. Есть функция записи в файл. Данные пишутся в цикле: while(i < file_size) { fputs(buffer,file_out); i=i+buf_size; } Хотелось бы, чтобы при нажатии ESC прерывалась запись файла, а при нажатии клавиши 'пробел' возникала бы пауза в записи файла на заданное время. Когда в цикл помещаю код для реализации выхода по ESC char ch = getch(); if(ch==27)
C++ Как проиграть mp3 с помощью VC++? I don't know how to play mp3 sound in vc6++ please help me???!!! подробнее

Показать сообщение отдельно
tumanovalex
Сообщений: n/a
08.11.2010, 16:10     Считывание файла с CD-ROM c миганием лампочки
Попросили меня написать программу, которая постоянно читает один и тот же файл с CD-ROM до нажатия определенной клавиши. При этом нужно сделать так, чтобы лампочка CD-ROM при чтении файла мигала. Файл размером 3 Мб. Я написал простое консольное приложение (считывание файла 2 раза) с функцией

int read_file_с(const char *file_name, const int buf_size)
{
FILE *file_in;
int i, nmax=2;
file_in = check_file(file_name);
if(buf_size==0) // без буферизации
{
setvbuf(file_in, NULL,_IONBF,0);
for(i=0;i<nmax;i++)
{
while((getc(file_in))!=EOF)
{
} //while
printf('cycle %d
',i);
fseek(file_in,0,SEEK_SET);
}//for
} //if
else // с буфферизацией
{
char *buffer = new char[buf_size];
setvbuf(file_in, buffer, _IOFBF, buf_size);
for(i=0;i<nmax;i++)
{
while(fgets(buffer,buf_size,file_in)!=NULL)
{
} // while
printf('cycle buffer %d
',i);
fseek(file_in,0,SEEK_SET);
}
} //else
fclose(file_in);
printf('
File read
');
return 0;
}

В Win 9x и ME при разных размерах буфера лампочка мигает с разной частотой, скорость считывания файла заметно зависит от размера буфера. Однако в Win 2k, XP файл практически мгновенно считывается в память вне зависимости от буфера и при повторных чтения файла лампочка CDROM не загорается. При дальнейших запусках программы файл вообще не считывает с CDROM, лампочка даже не мигает. Я так понимаю, что в этих ОС файл считывается в память, ОС где-то помечает местонахождение файла и далее при попытках считывания файла с CDROM ОС считывает его из памяти. Подскажите, пожалуйста, как можно решить эту задачу средствами С или API? Размеры файла, считываемого с CDROM, можно в случае необходимости увеличить.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru