CodeNet / Языки программирования / C / C++ / Linux/Unix / Справочник С/C++ для UNIX - Список функций
CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник С/C++ для UNIX - Список функций
CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник С/C++ для UNIX - Список функций
stat
STAT
#include <sys\types.h>
#include <sys\stat.h>
int stat(pathname, buffer);
char *pathname; path-имя существующего файла
struct stat *buffer; указатель на строку, принимающую
результаты
Описание.
Функция stat получает информацию о файле или директории,
определенном по pathname, и запоминает ее в структуре, на которую
указывает buffer. Структура stat, объявленная в <sys\stat.h>,
содержит следующие поля.
Поле Значение
st_mode Битовая маска для информации о режиме
файла. Бит S_IFDIR устанавливается,
если pathname определяет директорий;
бит S_IFREG устанавливается, если
pathname ссылается на обычный файл.
Биты чтения/записи устанавливаются
пользователем в соответствии с режимом
доступа к файлу. Пользователь выполняет
установку битов, используемых для рас-
ширения имени файла.
st_dev Номер устройства диска, содержащего
файл.
st_rdev Номер устройства диска, содержащего
файл.
(аналогично st_dev).
st_nlink Всегда 1.
st_size Размер файла в байтах.
st_atime Время последней модификации файла.
st_mtime Время последней модификации файла
(аналогично st_atime).
st_ctime Время последней модификации файла
(аналогично st_atime и st_mtime).
В структуре типа stat существуют три дополнительных поля,
которые для MS DOS не имеют смысла.
Возвращаемое значение.
Функция stat возвращает значение 0, если получена информа-
ция о статусе файла. Возвращаемое значение -1 свидетельствует об
ошибке, и errno устанавливается в ENOENT, т.е. имя файла или
path-имя не найдено.
См. также access, fstat.
Замечание. Если заданный pathname ссылается на устройство,
поля размера и времени в структуре stat не имеют осмысленного
значения.
Пример.
#include <sys\types.h>
#include <sys\stat.h>
#include <stdio.h>
struct stat buf;
int result;
char *args[4];
.
.
.
result = stat("child.exe", &buf);
if (result == 0)
if (buf.st_mode & S_IEXEC)
execv("child.exe", args);
_STATUS87
#include <float.h>
unsigned int _status87(); получает слово статуса
плавающей точки
Описание.
Функция _status87 получает слово статуса плавающей точки.
Слово статуса плавающей точки является комбинацией 8087/80287
слова статуса и других состояний, обнаруживаемых 8087/80287
handler-ом, таких как переполнение и потеря значимости стека пла-
вающей точки.
Возвращаемое значение.
Биты в возвращаемом значении обозначают статус плавающей
точки. Смотрите include-файл <float.h> для полного описания би-
тов, возвращаемых функций _status87.
Замечание! Большинство из математических библиотечных функ-
ций модифицируют слово статуса 8087/80287 с непредсказуемыми ре-
зультатами. Возвращаемые значения функций _clear87 и _status87
становятся более достоверными после выполнения нескольких опера-
ций с плавающей точкой с известными сообщениями слова статуса
плавающей точки.
См. также _clear87, _control87.
Пример.
#include <stdio.h>
#include <float.h>
double a = 1e-40, b;
float x,y;
main()
{
printf("status=%.4x-clear\n",_status87());
/* запомненное в y является неточным и с потерянной значи-
мостью */
y = a;
printf("status=%.4x-inexect,underflow\n",
_status87());
/* y неверно */
b = y;
printf("status=%.4x-inexect,underflow,denormal\n",
_status87());
/* очистка пользователем 8087 статуса */
_clear87();
}
