Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ABORT.docx
Скачиваний:
2
Добавлен:
09.09.2019
Размер:
69.94 Кб
Скачать

Int numread;

.

.

.

*buffer=80; / *максимальное количество символов */

/* Внимание. *buffer эквивалентно *buffer[0] */

/* следующие операторы вводят строку с клавиатуры и находят

ее длину: */

result=cgets(buffer);

numread=buffer[1];

/* result указывает на строку, numread - на ее длину ("ВК"

не считается, т.к. заменяется нулевым символом */.

CHDIR

#include <direct.h> требуется только для объявления

функции

Int chdir(pathname);

char *pathname; path-имя нового рабочего дирек-

тория

Описание.

Функция chdir изменяет текущий рабочий директорий на дирек-

торий, определяемый по pathname; pathname должен ссылаться на су-

ществующий директорий.

Возвращаемое значение.

Функция chdir возвращает значение 0, если рабочий директо-

рий успешно изменен. Возвращаемое значение -1 указывает на ошиб-

ку; в этом случае errno устанавливается в ENOENT, указывая, что

заданное path-имя не может быть найдено. Ошибки не возникают, ес-

ли pathname определяет текущий рабочий директорий.

См.также mkdir, rmdir, system.

Пример:

#include <direct.h>

/* следующий оператор изменяет текущий рабочий

** директорий на директорий корня */

chdir("/"); /* Замечание: эквивалентно chdir("\\") */

CHMOD

#include <sys\types.h>

#include <sys\stat.h>

#include <io.h> требуется только для объявления

функции

int chmod(pathname,pmode);

char *pathname; path-имя существующего файла

int pmode; разрешенный доступ для файла

Описание.

Функция chmod изменяет разрешенный доступ для файла, задан-

ного path-именем. Разрешенный доступ управляет чтением и записью

файла. Константное выражение pmode состоит из одной или обеих ма-

нифестных констант S_IWRITE и S_IREAD, определенных в <sys\stat.h>.

Любое другое значение для pmode игнорируется. Когда заданы обе

константы, они объединяются логическим оператором ИЛИ (:). Значе-

ния аргументов pmode представлены ниже.

ЗНАЧЕНИЕ СМЫСЛ ЗНАЧЕНИЯ

S_IWRITE разрешена запись

S_IREAD разрешено чтение

S_IREAD : S_IWRITE разрешены чтение и запись

Если разрешение на запись не задано, файл доступен только

для чтения. В MS DOS все файлы доступны для чтения, поэтому не-

возможно задание разрешения только на запись. Поэтому режимы

S_IWRITE и S_IREAD : S_IWRITE являются эквивалентными.

Возвращаемое значение.

Функция chmod возвращает значение 0, если разрешенный дос-

туп успешно изменен. Возвращаемое значение -1 свидетельствует об

ошибке; в этом случае errno устанавливается в ENOENT, указывая,

что определенный файл не может быть найден.

См.также access, creat, fstat, open, stat.

Пример:

#include <sys\types.h>

#include <sys.stat.h>

#include <io.h>

int result;

.

.

.

result=chmode("data",S_IREAD);

/* создать файл только для чтения */

if (result==-1)

perror("can't change file mode");

CHSIZE

#include <io.h> требуется только для объявления

функции

int chsize(handle,size);

int handle; handle-р, ссылающийся на открытый

файл

long size; новая длина файла в байтах

Описание.

Функция chsize увеличивает или уменьшает файл, связанный с

handle-ром, до размера, определяемого аргументом size. Файл дол-

жен быть открыт в режиме, который разрешает запись. Если файл

увеличивается, к нему добавляются нулевые символы '\0'. Если файл

уменьшается, все данные от конца укороченного файла до первона-

чальной длины файла теряются.

Возвращаемое значение.

Функция chsize возвращает значение 0, если файл успешно из-

менен. Возвращаемое значение -1 свидетельствует об ошибке и

errno устанавливается в одно из следующих значений:

ЗНАЧЕНИЕ СМЫСЛ ЗНАЧЕНИЯ

EACCES Заданный файл определен только для

чтения. Для версий MS DOS 3.0 и старших,

EACCES свидетельствует о принудительной

блокировке.(Определенный файл заблоки-

рован для доступа)

EBADF Неверный файловый handle

ENOSPC На устройстве не осталось свободного

места

См.также close, creat, open.

Пример:

#include <io.h>

#include <fcntl.h>

#include <sys\types.h>

#include <sys\stat.h>

#define MAXSIZE 32768L

int fh, result;

.

.

.

fh=open("data", O_RDWR|O_CREAT, S_IREAD|S_IWRITE);

.

.

.

/* перед закрытием файла нужно убедиться, что он

** не длиннее 32К

*/

if (lseek(fh,LO,2)>MAXSIZE)

result=chsize(fh,MAXSIZE);

_CLEAR87

#include <float.h>

unsigned int _clear87(); получает и очищает слово

статуса плавающей точки

Описание.

Функция _clear87 получает и стирает слово статуса плавающей

точки. Слово статуса плавающей точки является комбинацией слова

статуса 8087/80287 и других состояний, обнаруживаемых 8087/80287

handler-ом, таких как переполнение и потеря значимости стека пла-

вающей точки.

Возвращаемое значение.

Биты в возвращаемом значении обозначают статус плавающей

точки. Смотрите include-файл <float.h> для полного описания би-

тов, возвращаемых функцией _clear87.

Замечание. Большинство из математических библиотечных функ-

ций модифицирует слово статуса 8087/80287 с непредсказуемым ре-

зультатом. Возвращаемые значения функций _clear87 и _status87

становятся более достоверными после выполнения нескольких опера-

ций с плавающей точкой с известными состояниями слова статуса

плавающей точки.

См.также _control87, _status87.

Пример:

#include <stdio.h>

#include<float.h>

double a = 1e-40,b;

float x,y;

main()

{

printf("status=%.4x - clear\n",_clear87());

y = a;

/* запомненное в y является неточным и с потерянной значи-

мостью */

printf("status=%.4xx - inexact, underflow\n",

_clear87());

b = y; /* y является неправильным */

printf("status=%.4x - denormal\n", _clear87());

}

CLEARERR

#include <stdio.h>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]