Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Открыть файл (fopen) Считать из файл (fscanf) Записать в файл (fprintf) Закрыть файл (fclose)




8. Функция позиционирования внутри бинарного файла (stdio.h). Подробное описание функции с примерами. Позиционированное внутри файла Fseek(f1,delta,pos);F1-указатель на блок управления файлом;Delta -величина смещения в байтах, на которую следует переместить указатель файла;Pos-позиция, от которой производится смещения указатель(0 или SEEK_SET от начала файла, 1 или SEEK_CUR От текущей позиции, 2 или SEEK_END от конца файла). Запись в бинарный файл: #include "stdafx.h"#include "stdio.h"#include "stdlib.h"int main(){FILE *f;if (f=fopen("ttt.bin","wb")) {int i=10; fwrite(&i,sizeof(int),1,f);fclose(f);}scanf(" ");}Fseek - позиционировать файл Описание: устанавливает позицию в файле, связанном с поток fp. Смещение в байтах является величиной со знаком и берется относительно origin определены в io.h файле:SEEK_SET - начало файлаSEEK_CUR - текущая позиция SEEK_END - конец файлаЕсли файл открыт в текстовом режиме, смещение может быть только значением, возвращенным ftell, а origin должно быть 0, или offset должно быть 0. Если непосредственно перед вызовом fseek работала ungetс, её результаты теряются. Если файл был открыт в режиме чтения\записи, следом за fseek можно выполнить чтение или запись. Использование: #include <stdio.h>#include <io.h>int fseek(FILE *fp,long offset,int origin); /* ANSI */ Возвращаемое значение: возвращает 0 в случае успеха и ненулевое значение в случае ошибки. Пример: #include <stdio.h>#include <io.h>main(){FILE *fp;fp = fopen("file.dat", "r+"); fseek(fp, 0L, SEEK_END); /* Перейти в конец файла */fseek(fp, 0L, SEEK_SET); /* Перейти в начало файла */fseek(fp, 20L, SEEK_SET); /* Перейти на смещение 200 */}

9. Функция чтения из бинарного файла. Подробное описание функции с примерами (считать высоту и ширину картинки в BMP файле). Чтение двоичного (бинарного) файла осуществляется функцией fread(). Данной функции нужно передать всего два параметра - идентификатор файла и количество символов, которое нужно прочитать. Функция возвращает строку, в которой будут прочитанные символы. Если в качестве параметра функции будет указано большее число символов, чем есть в файле, то ошибки не будет - просто будет выведено все, что есть.include
int fread (buffer, size, count, stream);
char *buffer; память для размещения данных.
int size; размер в байтах.
int count; максимальное число объектов для чтения.
FILE *stream; указатель на структуру FILE.
Описание:
Данная функция читает объекты размера size по счетчику count из входного потока stream и располагает их в буфере buffer. Указатель на файл, связанный с потоком stream (если он есть), увеличивается на число прочитанных байтов. Если выбранный поток открыт в текстовом режиме, комбинация "ВК - ПС" заменяется на символ "ПС". Эта замена не влияет ни на указатель на файл, ни на возвращаемое значение.
Возвращаемое значение: Функция fread возвращает число действительно прочитанных объектов, которое меньше, чем count, если при чтении возникла
ошибка или встретился конец файла.
Пример:
#include
FILE *stream;
long list[100];
int numread;
stream = fopen("data", "r+b");
/* следующий оператор позволяет считать 100 двоичных длинных целых из потока stream */
numread = fread((char *)list, sizeof(long), 100, stream);.

10. Функция записи в бинарный файл. Подробное описание функции с примерами (. Примеры c int, char и массив). Описание 1-ого аргумента- буфер.fwrite-записывает данные из данного буфера в поток; fwrite (const void*p, size_t size,size_t n,FILE*f); Функция записывает n элементов длиной size байт из буфера, заданного указателем p,в поток f. Возвращает число записанных элементов. #include "stdafx.h" #include "stdio.h" #include "stdlib.h" int main() { FILE *f; if (f=fopen("ttt.bin","wb")) { int i=10; fwrite(&i,sizeof(int),1,f); fclose(f); } scanf(" "); } size_t fwrite(const void *ptr, size_t size, size_t n, FILE *stream); Функция fwrite записывает в поток stream данные из массива ptr, длина которого - n элемнтов, а размер каждого элемента - size. Функция возвращает общий объем данных, которые были записаны в поток.

КЭШ память.

КЭШ - промежуточный буфер с быстрым доступом, содержащий информацию, которая может быть запрошена с наибольшей вероятностью. Доступ к

данным в кэше идёт быстрее, чем выборка исходных данных из оперативной (ОЗУ) и быстрее внешней (жёсткий диск или твердотельный накопитель)

памяти, за счёт чего уменьшается среднее время доступа и увеличивается общая производительность компьютерной системы.

КЭШ – прозрачен для программ

КЭШ – работает на большей частоте

КЭШ – хранит часто используемые данные

Эффективность кэша зависит от:

Объёма кэша (Чем больше размер Кэш-памяти, тем больше кэш-попадание)

· Алгоритма функционирования кэша (Операция чтения, операция записи)

· Алгоритма функционирования кэша

Эффективность кэша = Количество попаданий в кэш от общего кол-ва обращений к памяти.

Информация, используемая чаще всего (скажем, команды в многократно выполняемом цикле), хранится в специальной секции процессора, называемой

кэш-памятью первого уровня. Это самая быстрая память.

Данные, которые требуются часто, переносятся на уровень быстрой памяти, называемой кэш-памятью второго уровня.

Когда процессору нужно выполнить команду, он сначала анализирует состояние своих регистров данных. Если необходимых данных в регистрах нет, он

обращается к кэш-памяти первого уровня, а затем — к кэш-памяти второго уровня. Если данных нет ни в одной кэш-памяти, процессор обращается к

оперативной памяти. И только в том случае, если нужных данных нет и там, он считывает данные с жесткого диска.

Когда процессор обнаруживает данные в одном из кэшей, это называют «попаданием»; неудачу называют «промахом». Каждый промах вызывает

задержку, поскольку процессор будет пытаться обнаружить данные на другом, более медленном уровне. В хорошо спроектированных системах с

программными алгоритмами, которые выполняют предварительную выборку данных до того, как они потребуются, процент «попаданий» может достигать 90.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных