5. Довільний доступ до потоку

У наведених вище прикладах потоки використовувалися як файли послідовного доступу. Операції читання або записи в потік починалися з поточної позиції потоку, яка визначається внутрішнім покажчиком потоку. При відкритті покажчик показує на початок потоку в режимі "r" і "w", і на кінець потоку в режимі "a".

Після виконання певної операції обміну покажчик змінюється й рівняється нової поточної позиції потоку. Наприклад, якщо з потоку прочитано 1 символ, то покажчик збільшується на 1.

Але існує можливість позиціонувати покажчик на будь-яку позицію в потоці, тобто реалізувати прямий доступ до файлу. Існує п'ять функцій для позиціонування покажчика потоку:
1. ftell(point) - передає поточну позицію покажчика потоку.
2. fgetpos(point, long) – передає поточну позицію покажчика потоку, передає 0, якщо визначення відбулося правильно й -1 інакше.
3. fsetpos(point, long) – установлює відповідну позицію покажчика потоку.

4. fseek(fp, count, start);, установлення покажчика на будь-яку позицію покажчика потоку, де fp - покажчик на файл; count - кількість байт типу long, визначає абсолютну або відносну позицію у файлі; start - типу int, з якої позиції потрібно відраховувати кількість байт count.

5. rewind (fp) перейти на початок файлу, аналогічна fseek (fp, 0L, SEEK_SET).
Якщо потік відкрито для додавання (режим "а""а+"), тоді запис завжди здійснюється в кінець файлу. Тобто хоч відповідними функціями можна знайти потрібну позицію, але при спробі запису покажчик попередньо буде встановлений на кінець файлу. Відзначені функції організації прямого доступу не можна застосовувати до стандартних файлів в текстовому форматі.

Доступність

Шрифти Шрифти

Розмір шрифта Розмір шрифта

1

Колір тексту Колір тексту

Колір тла Колір тла

Кернінг шрифтів Кернінг шрифтів

Видимість картинок Видимість картинок

Інтервал між літерами Інтервал між літерами

0

Висота рядка Висота рядка

1.2

Виділити посилання Виділити посилання

Вирівнювання тексту Вирівнювання тексту

Ширина абзацу Ширина абзацу

0