CodeNet / Языки программирования / C / C++ / Linux/Unix / Справочник С/C++ для UNIX - Список функций
CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник С/C++ для UNIX - Список функций
CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник С/C++ для UNIX - Список функций
chsize
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());
}
