Warning: session_start(): open(C:\Windows\temp\sess_9tstnqkf04jaf8oig95iu1g3t5, O_RDWR) failed: No space left on device (28) in C:\www\lemma4.1php\login.php on line 15 Warning: session_commit(): open(C:\Windows\temp\sess_9tstnqkf04jaf8oig95iu1g3t5, O_RDWR) failed: No space left on device (28) in C:\www\lemma4.1php\login.php on line 36 Warning: session_commit(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (C:\Windows\temp) in C:\www\lemma4.1php\login.php on line 36 Основы языка Си


Поток данных ( stream) в программировании — абстракция, используемая для чтения или записи файлов и т. п. в единой манере.


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


Абстракция потока особенно важна в языке Си, где он представляет собой источник ввода и/или вывода данных, обычно байтов, связанный с файлом на диске, устройством, либо другим процессом.


На уровне потокового ввода-вывода обмен данными производится побайтно. Такой обмен возможен как для внешних устройств (клавиатура, дисплей), так и для файлов на диске.


Функции, поддерживающие потоковый ввод/вывод, позволяют обрабатывать данные различных размеров и форматов, обеспечивая при этом буферизацию. Буферизация подразумевает, что при обмене данными с физическими устройствами, данные сначала накапливаются в буфере, реализованном в виде участков основной памяти, а лишь при его заполнении производится реальный обмен. Буферизация значительно сокращает время обмена.


При работе с потоками можно производить следующие действия:

  1. Открывать и закрывать потоки (связывать указатели на потоки с конкретными файлами).
  2. Вводить и выводить символ, строку, форматированные данные, блок данных произвольной длины.
  3. Анализировать ошибки потокового ввода-вывода и условие достижения конца потока.
  4. Управлять буферизацией потока и размером буфера
  5. Получать и устанавливать указатель (индикатор) текущей позиции в потоке.