Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Программирование на языке Си

..pdf
Скачиваний:
15
Добавлен:
12.11.2023
Размер:
17.16 Mб
Скачать

574

Программирование на языке Си

Т абли ца П3.8

Функции для работы с файлами, связанными с потоками (файл stdio.h)

Функция

 

Прототип и краткое описание действий

clearerr

v o i d

c l e a r e r r ( F I L E *s t r e a m ) ;

 

Сбрасывает индикаторы достижения конца файла и обнаружения

 

ошибки для файла, связанного с потоком stream.

fclose

i n t

f c l o s e ( F I L E

* s t r e a m ) ;

 

Закрывает файл, связанный с Потоком stream.

feof

i n t

f e o f ( F I L E *s t r e a m ) ;

 

Проверяет, достигнут ли конец файла, связанного с потоком

 

stream.

 

ferror

i n t

f e r r o r ( F I L E

* s t r e a m ) ;

 

Проверяет, не возникла ли ошибка записи или чтения при доступе

 

к файлу, связанному с потоком stream.

fgetc

fgetpos

fgets

i n t f g e t c ( F I L E * s tr e a m ) ;

Считывает символ из файла, связанного с потоком stream.

i n t f g e t p o s ( F I L E * s t r e a m , f p o s t * p o s ) ;

Копирует значение указателя текущей позиции в файле, связанном с потоком stream, в объект, на который указывает pos. Тип при­ нимающей переменной задан в заголовочном файле stdio.h.

c h a r * f g e t s ( c h a r * s t r i n g , i n t n , FIL E * s t r e a m ) ;

Читает не более п-1 символов из файла, связанного с потоком stream, в массив, адресуемый указателем string. За последним символом, помещенным в массив, записывается '\0'.

fopen

fprintf

fputc

FIL E * f o p e n ( c o n s t c h a r ‘ f i l e n a m e , c o n s t c h a r ♦ m o d e );

Открывает файл, на имя которого указывает filename, в режиме, задаваемом mode, и связывает его с потоком. Указатель на поток является значением, аозвращаемым функцией.

int fprintf(FILE ‘ stream, const char ‘ format [, argument,. . .]); Функция форматного вывода в файл, связанный с потоком stream (см. printf()).

int fputc(int с, FILE ‘ stream);

Выводит символ с в файл, связанный с потоком stream.

Приложение 3

575

 

П р о д о л ж е н и е

Функция

Прототип и краткое описание действий

 

fputs

int fputs(const char ‘string, FILE ‘string);

 

 

Записывает символьную строку, на которую указывает string, в

 

файл, связанный с потоком stream.

 

fscanf

int fscanf(FILE ‘stream, const char ‘format (, argument,... |);

 

Функция форматного ввода из файла, связанного с потоком

 

 

stream (см. scanfO).

 

fseek

int fseek(FILE ‘stream, long offset, int point);

 

 

Перемещает указатель текущей позиции в файле, связанном с по­

 

током stream, на offset байт относительно точки отсчета, опреде­

 

ленной значением point (0 - от начала файла, 1 - от текущей

 

 

позиции, 2 - от конца файла).

 

ftell

long ftell(FILE ‘stream);

 

 

Возвращает значение указателя текущей позиции в файле, связан­

 

ном с потоком stream.

 

 

Таблица

П3.9

 

Функции низкого уровня для работы с файлами

 

 

(файлы io.h, fcntl.h, unistd.h)

 

Функция

Прототип и краткое описание действий

 

dose

int close(int handle);

 

 

Закрывает файл, связанный с дескриптором handle.

 

creat

int creat(const char ‘path, int mode);

 

 

Создает новый файл в режиме, заданном в mode.

 

eof

int eof(int handle);

 

 

Проверяет, достигнут ли конец файла, связанного с дескриптором

 

handle.

 

lseek

long lseek(int handle, long offset, int point);

 

Перемещает указатель текущей позиции в файле, связанном с де­

скриптором handle на offset байтов относительно точки отсчета, определенной значением point (0 - от начала файла, I - от теку­ щей позиции, 2 - от конца файла).

576

Программирование на языке Си

 

 

 

 

 

 

 

П р о д о л ж е н и е

Функция

 

Прототип и краткое описание действий

 

open

i n t

o p e n (c o n s t

c h a r * p a th ,

i n t a c c e s s [, u n s ig n e d

 

m o d e]) ;

 

 

 

 

 

 

 

Открывает файл, на имя которого указывает path а режиме, за­

 

данном в access. Возвращает дескриптор файла. Mode определяет

 

тип файла и права доступа.

 

 

 

 

 

read

i n t

r e a d ( i n t

h a n d l e ,

v o i d

* b u f ,

u n s i g n e d

l e n ) ;

 

Читает len байтов из файла, связанного с дескриптором handle в

 

буфер, на который указывает buf.

 

 

 

 

sopen

i n t

s o p e n ( c o n s t c h a r

* p a th ,

i n t

a c c e s s ,

i n t

 

s h f l a g , [ , u n s i g n e d m o d e ]) ;

 

 

 

 

Открывает файл, на имя которого указывает path, для совместно­

 

го использования несколькими процессами. Access - режим

 

доступа; shflag - режим разделения файла; mode определяет тип

 

файла и права доступа. Возвращает дескриптор файла.

 

tell

lo n g

t e l l ( i n t

h a n d l e ) ;

 

 

 

 

 

Возвращает значение указателя текущей позиции в файле, связан­

 

ном с дескриптором handle.

 

 

 

 

 

write

i n t

w r i t e ( i n t

h a n d l e ,

v o i d

* b u f ,

u n s ig n e d

n b y t e ) ; .

Записывает nbyte байтов из буфера, на который указывает buf, в файл, связанный с дескриптором handle.

ЛИТЕРАТУРА

1. Керниган Б., Ритчи Д., Фьюер А. Язык программирования Си. Задачи по языку Си / Пер. с англ. - М.: Финансы и стати­ стика, 1985. - 279 с.

2.Кернигаи Б., Ритчи Д. Язык программирования Си / Пер. с англ. - М.: Финансы и статистика, 1992. - 272 с.

3.Болски М.И. Язык программирования Си / Пер. с англ. Справочник. - М.: Радио и связь, 1988. - 96 с.

4.Хэнкок Л., Кригер М. Введение в программирование на язы­

ке Си / Пер. с англ. - М.: Радио и связь, 1986. - 192 с.

5.Жешке Рекс. Толковый словарь стандарта языка Си / Пер. с англ. - Санкт-Петербург: Питер, 1994. - 222 с.

6.Уэйт М., Прата С., Мартин Д. Язык Си. Руководство для начинающих / Пер. с англ. - М.: Мир, 1988. - 512 с.

7.Банахан М., Раттер Э. Введение в операционную систему UNIX / Пер. с англ. - М.: Радио и связь, 1985. - 344 с.

8.Белецкий Я. Энциклопедия языка Си / Пер. с англ - М.: Мир, 1992.-687 с.

9.Джехани Н. Программирование на языке Си / Пер. с англ. - М.: Радио и связь, 1988. - 272 с.

10.Юлин В.А., Булатова И.Р. Приглашение к Си. - Минск: Вышейшая школа, 1990. - 224 с.

11.Уинер Р. Язык Турбо Си / Пер. с англ. - М.: Мир, 1991. - 380 с.

12.Романовская Л.М., Русс Т.В., Свитковский С.Г. Про­ граммирование в среде Си для ПЭВМ ЕС - М.: Финансы и статистика, 1991. - 352 с.

13.Трой Д. Программирование на языке Си для персонального компьютера IBM PC. - М.: Радио и связь, 1991. - 430 с.

14.Бочков С.О., Субботин Д.М. Язык программирования Си для персонального компьютера. - М.: СП "Диалог", 1990. - 384 с.

15.Дерк Луис С и C++. Справочник / Пер. с нем. - М.: Вос­ точная книжная компания, 1997. - 592 с.

16.Тоидо К., Гимпел С. Язык Си / Пер. с англ. Книга ответов.

-М.: Финансы и статистика, 1994. - 160 с.

Указатель операций и разделителей

,

операция "запятая" 34, 36,

 

операция явного преобра­

 

41

 

 

 

 

 

 

 

зования типов 34,42

 

 

разделитель "запятая" 47

*

операция

разыменования

;

разделитель

"точка

с

за­

 

34,176, 216, 296

 

 

 

пятой" 25, 28, 47, 68

 

 

операция

умножения

34,

!

операция логического от­

 

37, 50, 54

 

 

 

рицания 34, 35, 52

 

 

 

определение указателя 34,

!=

операция отношения "не­

 

44, 49, 164

 

 

 

равенство" 34,38,52,172

*=

операция

умножения

с

#

препроцессорная

опера­

 

присваиванием 34, 39

 

ция

над

параметром

+

операция сложения 34, 50,

 

макроса 49, 64, 157, 160

 

54

 

 

 

##

препроцессорная операция

 

операция "унарный плюс"

 

конкатенации

лексем в

 

34, 35

 

 

 

 

макросе 157

 

 

 

++

операция увеличения на 1

%

операция

вычисления

ос­

 

(инкремент) 34, 35, 51

 

татка от деления 34, 37,

+=

операция сложения с при­

 

50, 54

 

 

 

 

 

 

 

сваиванием 34, 39

 

%=

операция

вычисления

ос­

-

, операция

вычитания

34,

 

татка

с

присваиванием

 

50

 

 

 

 

34, 39

 

 

 

 

 

 

 

операция

"унарный

ми-

&

операция получения адре­

 

нус"25, 34, 50

 

 

 

са 33, 34, 165

 

 

 

операция

уменьшения

на

 

поразрядная

операция

И

 

1(декремент) 34, 36, 51

 

34. 37, 59

 

 

 

 

-=

операция

вычитания

с

&&

логическая

операция

И

 

присваиванием 34, 40

 

34, 38

 

 

 

 

 

 

->

операция

доступа

к ком­

&=

поразрядная операция И с

 

поненту

по указателю

 

присваиванием

34,

40,

 

на структурированный

 

54

 

 

 

 

 

 

 

объект 34,297

 

 

()

операция

"вызов

функ­

 

операция

доступа

к ком­

 

ции" 34,41, 110, 207

 

 

поненту

по

имени

 

разделитель

"скобки"

44,

 

структурированного

 

 

50, 297

 

 

 

 

 

 

объекта 34,41, 286, 297

Указатель операций и разделителей

 

 

 

 

 

579

...

многоточие

44, 48,

204,

»

операция

"поразрядный

 

243,250

 

 

 

 

сдвиг вправо" 34, 37, 54,

/

операция

деления

(слэш)

 

59, 60

 

 

 

 

 

34, 37, 50, 54

 

 

» = операция

"поразрядный

/*

комментарий (начало) 10

 

сдвиг

вправо". с при­

*/

комментарий (конец) 10

 

сваиванием 34, 40

 

/=

операция

деления

с

при­

? : операция

условного

вы­

 

сваиванием 34, 39, 54

 

ражения

(условная опе­

:

признак

битового

поля

 

рация) 33, 34, 61

 

 

320

 

 

 

 

[]

операция

индексации

33,

 

спецификатор метки 48

 

34,41,44,101

 

 

<

операция

 

отношения

 

описание массива 44, 108

 

"меньше,

чем"

34,

38,

\

обратный слэш 16, 22

 

 

52, 172

 

 

 

 

Л

операция

"поразрядное

«

операция

 

"поразрядный

 

исключающее ИЛИ" 34,

 

сдвиг влево" 34, 37, 54,

 

37, 54, 59

 

 

 

59, 60

 

 

 

 

А=

операция

"поразрядное

« = операция

 

"поразрядный

 

исключающее

ИЛИ" с

 

сдвиг влево" с присваи­

 

присваиванием 34, 40

 

ванием 34, 40

 

 

_

подчеркивание

(литера)

<=

операция

отношения

 

11, 15

 

 

 

 

 

"меньше или равно" 34,

{}

фигурные

скобки 20,

44,

 

38, 52,

172

 

 

 

45, 204, 264

 

 

=

операция

присваивания

I

поразрядная

операция

 

27, 34, 39, 44, 53

 

 

 

ИЛИ 34, 37, 54, 59

 

==

операция отношения "сра­

| =

поразрядная

операция

 

внение

на равенство"

 

ИЛИ

с

присваиванием

 

34,38, 52, 172

 

 

 

34, 40

 

 

 

 

>

операция

отношения

I |

логическая операция ИЛИ

 

"больше,

чем"

34,

38,

 

34, 39, 52

 

 

 

52, 172

 

 

 

 

~

операция

"дополнения"

>=

операция

отношения

 

34, 35, 59

 

 

"больше или равно" 34, 38,52,172

Предметный указатель

A - Z

ANSI-стандарт 110, 162, 219, 484, 560

ASCII-код 194, 318, 554, 565 ESC-sequence, см. Эскейп-по-

следовательность /-значение 35, 36, 39

MS-DOS 144, 272, 318, 379, 440,480

UNIX 181,325,372,414, 452 Windows 162, 274, 325, 372,

440, 447, 479, 490

А

Абстрактный тип 302 Агрегирующий тип 318 Аддитивная операция 34, 36,

51,77, 170 Адрес, см. Операция получе­

ния адреса

Алфавит языка Си 10 Аргумент функции, см. Фак­

тические параметры; Фор­ мальные параметры

Арифметический тип, см. Тип арифметический

Арифметическое выражение, см. Выражение арифмети­ ческое

Арифметическое преобразо­ вание, см. Операция пре­ образования

Б

Бинарные операций 33, 34, 36, 38,41,51,53,60, 297

Бинарное дерево 426, 447, 550 Бинарный режим 329, 354 Битовое поле 320 Блок 24, 45, 68, 79, 110, 204,

261 Буфер ввода-вывода 326

-клавиатуры 87, 318

-операционной системы 326 Буферизация 326, 369

В

Ввод 69, 85, 192,213,325 Вещественная константа, см.

Константа вещественная Вложение блоков, см. Блок

-инициализаторов 290

-комментариев, см. Ком­ ментарий

-операторов цикла 101

-определений функций 204

-переключателей, см. Опе­ ратор switch

Предметный указатель

 

581

-

составных операторов, см.

 

Г

 

Составной оператор

Глобальный

объект 63, 144,

-

структур 290

264, 265,401,446

 

 

-условных операторов, см. - переменная 262, 377, 408 Условный оператор

Возвращаемое

значение, см.

 

д

 

Значение,

возвращаемой

 

 

функцией

 

Двоичный режим обмена с

Восьмеричная

константа, см.

файлами, см. Бинарный ре­

Константа восьмеричная

жим

 

 

Время существования пере­

Декремент, см. Операция "де­

менных 263

 

кремент"

 

 

Вывод 69, 192,252, 325, 331

Деление, см.

Операция

деле­

Выражение 36, 42, 50, 77, 112,

ния

 

 

126, 169, 183, 207, 284, 404

Десятичная

константа,

см.

- арифметическое 62, 80, 91

Константа десятичная

 

-леводопустимое, см. Лево­ Динамическая память 180,

допустимое выражение

-логическое 62, 90

-модифицируемое име­ нующее 53, см. также I-

значение

-первичное 114

-постфиксной формы 51

-префиксной формы 51

-присваивания 91, см. также Операция присваи­ вания

-пустое 47

-условное 61

-целочисленное констант­

ное 146 Вычитание, см. Операция вы­ читания

262, 266, 305

-выделение, см. Память, динамическое выделение

-управление 185

Динамическое представление данных 306

Динамические массивы 182, 254, см. также Массив ди­ намический

-объекты 268, 305

-односвязные списки 310

-структуры 262

-информационные 306, 311

Директива препроцессора 28, 49, 64, 78, 122, 133, 445

-#160

582

Программирование на языке Си

-#defme 29, 64, 123, 134, 279, 332

-#elif 134, 146, 149

-#else 134, 146, 149

-#endif 134,146,150

-#error 134, 159

-#if 134, 146, 149

-#ifdef 134, 146, 151

-#ifndef 134, 146, 151

- ^include 31, 49, 64, 134, 142

-#linel34, 158

-^pragma 134, 160

-#undef134, 141, 151 Доступ к адресам параметров

244

-значению переменной 23

-кодам библиотечных фун­ кций 66

-объекту 211, 226

-отдельным битам 320

-участку памяти 23, 169, 182,211

-- файлу 362, 380

-элементам массива 175, 184,254

-элементам структур 286, 296, 299,404

3

Заголовок переключателя, см. Оператор switch

-функции 110, 204

-цикла, см. Цикл Заголовочный файл 31, 66,

144, 326, 377

-- alloc.h 144, 179, 570

assert.h 143

conio.h 144, 570 572

ctype.h 143, 565

-

 

- dos.h

144, 572, 574

-

-

errno.h

143, 330, 375

-- float.h 31, 72, 143,561

— graphics.h 144

-- limits.h 31, 72, 137, 143, 560

— locate.h 143

-- math.h 82, 143,235, 563

— mem.h 144, 572

— setjump.h 143

— signal.h 143, 574

— stdarg.h 48, 144, 249

-- stddef.h 144, 171

-- stdlib.h 122, 144, 179, 201, 219, 566, 570

-- stdio.h 49, 69, 85, 144, 166, 326, 566

-- string.h 144, 219, 405, 567

— time.h 144

Зарезервированное слово, см. Служебное слово

Знаки операций 11, 33, 52, 76, 133

Значение, возвращаемое функцией 68, 114, 205, 210, 338

Предметный указатель

583

-леводопустимое, см. /-зна­ чение

-указателя 168, 178, 217, 296, 368, 426

-нулевое, см. Нулевой ука­ затель

И

Идентификатор 11, 82, 136

-библиотеки 457

-процессорный 136, 150, 279,

Имя

-директивы 134

-заголовочного файла 31, 66

-исполняемой программы 449

-компонента 41

-константы 20, 28

-макроса 142, 455

-массива 42, 175, 179, 218

-объединения 315

-объекта 86

-глобального 265

-структурированного 41

-параметра 204

-переменной 23, 27, 35, 54, 86,164

-препроцессорного иденти­ фикатора 135

-структуры 284, 286, 321

-типа 42

-объединяющего 317

-структурного 277, 307

-указателя 168, 228

-уточненное 286

-файла 135, 142, 235, 328, 360,371

-функции 42, 79, 114, 203, 228,

-главной 67, 68

-неглавной 114

-элемента 296, 315 Индексация 106, 272, см.

также Операция [ ] Инициализатор 185, 293 Инициализация 27

-массива 46, 108, 197

-переменной 27, 49

-структуры 46, 285 Инкремент, см. Операция "ин­

кремент"

Исполняемый оператор, см. Оператор

К

Класс памяти 12, 24, 262

-auto 11, 12, 262

-extern 11, 13, 145, 269, 388

-register 11, 13, 262

-static 11, 13, 264, 387

-автоматической 12, 262

Ключевое слово, см. Служеб­ ное слово

Кодировка ASCII, см. ASCIIкод

Соседние файлы в папке книги