mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк 

Златоуст.Ru

 

 

STAT(2)                                                 STAT(2)

НАЗВАНИЕ 
        stat, fstat - получение статуса файла

СИНТАКСИС 
        #include 
        #include 
        
        int stat (path, buf)
        char *path;
        struct stat *buf;
        
        int fstat (fildes, buf)
        int fildes;
        struct stat *buf;

ОПИСАНИЕ 
        Аргумент path указывает на  маршрутное  имя  файла.  Не
        требуется наличие прав доступа на чтение, запись и  вы-
        полнение заданного файла, но все каталоги,  перечислен-
        ные перед именем файла в маршрутном имени, должны  быть
        доступны на поиск. Системный вызов  stat  предоставляет
        информацию о поименованном файле.

        Системный вызов fstat предоставляет информацию об  отк-
        рытом файле, задаваемом  с  помощью  дескриптора  файла
        fildes, который возвращается успешно завершенными  сис-
        темными вызовами open, creat, dup, fcntl или pipe.

        Аргумент buf является указателем на стуктуру типа stat,
        в которую помещается информация о файле.

        Структура, на которую указывает buf, содержит следующие
        поля:

        ushort st_mode;  /* Режим файла [см. mknod(2)] */
        ino_t  st_ino;   /* Номер описателя файла */
        dev_t  st_dev;   /* Идент. устройства, содержащего
                            каталог с входом в этот файл */
        dev_t  st_rdev;  /* Идент.  устройства. Поле определено
                            только для специальных символьных и
                            блочных файлов */
        short  st_nlink; /* Количество ссылок */
        ushort st_uid;   /* Идент. владельца файла */
        ushort st_gid;   /* Идент. группы владельца файла */
        off_t  st_size;  /* Размер файла в байтах */

        time_t st_atime; /* Время последнего доступа к файлу */
        time_t st_mtime; /* Время последней записи в файл */
        time_t st_ctime; /* Время  последнего изменения статуса
                            файла */
               /* Время измеряется в секундах от 00:00:00
                  1 января 1970г. по Гринвичу */

        st_mode 
             Режим файла согласно определению, данному при опи-
             сании системного вызова mknod(2).

        st_ino 
             Это поле однозначно определяет файл в данной  фай-
             ловой системе. Пара  (st_ino,  st_dev)  однозначно
             определяет обычные файлы.

        st_dev 
             Это поле однозначно определяет  файловую  систему,
             содержащую файл. Значение поля может использовать-
             ся в качестве входного аргумента системного вызова
             ustat(2) при получении  дополнительной  информации
             об этой файловой системе. Никакого другого  смысла
             это поле не имеет.

        st_rdev 
             Это поле следует использовать  только  для  команд
             администратора. Оно имеет смысл лишь для специаль-
             ных блочных и символьных файлов  и  только  в  той
             системе, где файл был сконфигурирован.

        st_nlink 
             Это поле следует использовать  только  для  команд
             администратора.

        st_uid 
             Идентификатор владельца файла.

        st_gid 
             Идентификатор группы владельца файла.

        st_size 
             Для обычных файлов это адрес конца файла. Для  ка-
             налов это текущее количество данных в  файле.  Для
             специальных блочных и символьных  файлов  значение
             поля не определено.

        st_atime 
             Время последнего доступа к данным. Это поле  изме-
             няется следующими системными  вызовами:  creat(2),
             mknod(2), pipe(2), utime(2) и read(2).

        st_mtime 
             Время последней модификации данных. Это поле изме-
             няется следующими системными  вызовами:  creat(2),
             mknod(2), pipe(2), utime(2) и write(2).

        st_ctime 
             Время последнего изменения статуса файла. Это поле
             изменяется   следующими    системными    вызовами:
             chmod(2), chown(2), creat(2),  link(2),  mknod(2),
             pipe(2), unlink(2), utime(2) и write(2).

        Системный вызов stat завершается неудачей, если  выпол-
        нено хотя бы одно из следующих условий:

        [ENOTDIR]   Компонент маршрута не является каталогом.

        [ENOENT]    Заданный файл не существует.

        [EACCES]    Нет права на поиск для компонента маршрута.

        [EFAULT]    Аргументы buf или path указывают за пределы
                    отведенного процессу адресного  пространст-
                    ва.

        [EINTR]     Во время выполнения системного  вызова  пе-
                    рехвачен сигнал.

        [ENOLINK]   Маршрутное имя path указывает на  удаленный
                    компьютер, связи с которым в данный  момент
                    нет.

        [EMULTIHOP] Компоненты path требуют многократного обра-
                    щения к удаленным компьютерам.

        Системный вызов fstat завершается неудачей, если выпол-
        нено хотя бы одно из следующих условий:

        [EBADF]     Аргумент  fildes  не  является   корректным
                    дескриптором открытого файла.

        [EFAULT]    Аргументы buf или path указывают за пределы
                    отведенного процессу адресного  пространст-
                    ва.

        [ENOLINK]   Дескриптор файла fildes указывает  на  уда-
                    ленный компьютер, связи с которым в  данный
                    момент нет.

СМ. ТАКЖЕ 
        chmod(2),  chown(2),   creat(2),   link(2),   mknod(2),
        pipe(2),   read(2),   time(2),   unlink(2),   utime(2),
        write(2).

ДИАГНОСТИКА 
        При успешном завершении результат  равен  0;  в  случае
        ошибки возвращается -1, а переменной errno присваивает-
        ся код ошибки.



STAT(5)                                                 STAT(5)

НАЗВАНИЕ 
        stat - данные, возвращаемые системным вызовом stat

СИНТАКСИС 
        #include 
        #include 

ОПИСАНИЕ 
        Системные  вызовы stat(2) и fstat(2) возвращают данные,
        структура которых описана  во  включаемом  файле  . Назначение бит, входящих в поле st_mode, также
        определяется в этом файле.

        Структура, возвращаемая системным вызовом stat:

        struct stat {
          dev_t  st_dev;
          ushort st_ino;
          ushort st_mode;
          short  st_nlink;
          ushort st_uid;
          ushort st_gid;
          dev_t  st_rdev;
          off_t  st_size;
          time_t st_atime;
          time_t st_mtime;
          time_t st_ctime;
        };

        #define S_IFMT   0170000 /* Маска  для  выделения  типа
                                    файла */
        #define S_IFDIR  0040000 /* Каталог */
        #define S_IFCHR  0020000 /* Специальный символьный */
        #define S_IFBLK  0060000 /* Специальный блочный */
        #define S_IFREG  0100000 /* Обычный файл */
        #define S_IFIFO  0010000 /* Именованный канал */
        #define S_ISUID  04000   /* Установить    идентификатор
                                    пользователя при выполнении*/
        #define S_ISGID  02000   /* Установить    идентификатор
                                    группы при выполнении */
        #define S_ISVTX  01000   /* Сохранить  сегмент   команд
                                    после завершения выполнения
                                    */
        #define S_IREAD  00400   /* Право на  чтение  для  вла-
                                    дельца */
        #define S_IWRITE 00200   /* Право на запись  для   вла-
                                    дельца */
        #define S_IEXEC  00100   /* Право  на  выполнение/поиск
                                    для владельца */
        #define S_ENFMT  S_ISGID /* Флаг разрешения блокировки
                                    доступа */
        #define S_IRWXU  00700   /* Чтение, запись, выполнение:
                                    владелец */
        #define S_IRUSR  00400   /* Право на чтение: владелец*/
        #define S_IWUSR  00200   /* Право на запись: владелец*/
        #define S_IXUSR  00100   /* Право на выполнение: владе-
                                    лец */
        #define S_IRWXG  00070   /* Чтение, запись, выполнение:
                                    группа */
        #define S_IRGRP  00040   /* Право на чтение: группа */
        #define S_IWGRP  00020   /* Право на запись: группа */
        #define S_IXGRP  00010   /* Право на выполнение: группа
                                    */
        #define S_IRWXO  00007   /* Чтение, запись, выполнение:
                                    прочие */
        #define S_IROTH  00004   /* Право на чтение: прочие */
        #define S_IWOTH  00002   /* Право на запись: прочие */
        #define S_IXOTH  00001   /* Право на выполнение: прочие
                                    */

СМ. ТАКЖЕ 
        stat(2), types(5).



 

 

Бернадинер Марк Абрамович

Мое резюме

Компьютерная страничка

Ресурсы сети

Фотоальбом

 

 

 

mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк