русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Void main()


Дата додавання: 2014-11-28; переглядів: 838.


{ char buf[1024];// Буфер

double a=2.2222, b=5.5555;

strstream f(buf, sizeof buf, ios::in|ios::out);

f << a << " " << b << '\0';// Запис у буфер

double x,y; f >> x >> y;// Читання з буфера

cout << x << " " << y << endl;// Виведення на екран

cout << buf << endl;// А що в буфері?

pause;

}

 

Одержання дескрипторів файлів

Для виконання деяких низькорівневих операцій з файлами використовуються дескриптори файлів. Дескриптор - унікальне ціле число, яке працює як логічний номер файлу. Потокові класи дозволяють досить просто одержати дескриптор будь-якого файлу. Розглянемо наступний приклад:

ifstream fa("A.dat");

cout << "Дескриптор файлу = << (fa.rdbuf())->fd() << endl;

Для визначення дескриптора спочатку викликається функція-член потоку rdbuf() класу fstream для об'єкта fa. Вона повертає адресу спеціального об'єкту класу filebuf, який асоційовано з fa. Такий об’єкт є буфер, що створюється для забезпечення роботи кожного потоку, він містить у собі також і дескриптор файлу. Далі викликається функція fd() - член класу filebuf, вона саме й повертає дескриптор файлу fa.

Для того, щоб уникнути записів громіздких і малозрозумілих виразів, які обчислюють дескриптори, можна побудувати спеціальну функцію або відповідний макрос. Нижче наведені приклади побудови функції й макросу для одержання дескрипторів файлів.

У наступному прикладі побудована зручна функція descr для одержання дескриптору файла.

 

// Приклад 8

#include <fstream.h>

template <class FSTR>

// шаблон FSTR може приймати значення,

// ifstream, ofstream, fstream

int descr(FSTR& f)

{ return (f.rdbuf())->fd();

}


<== попередня лекція | наступна лекція ==>
Void main() | Void main()


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн