[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 Печать имени пользователя - Пример

Конец файла stat.c приведен на следующей странице. Функция prntuser()
выводит на печать идентификаторы пользователя и группы, вместе с
соответствующими именами пользователя и группы. Функция prntimes()
печатает временные отметки файла в понятном формате.
Эти функции работают следующим образом:
71-72     Объявляются указатели на структуры password и group.
74-76     Печатается имя пользователя, полученное по идентификатору
пользователя.
77-79     Печатается имя группы, полученное по идентификатору группы.
88-93     Печатаются три временные характеристики файла в понятном
формате.
Файл: stat.c
На странице 10-24 приведен вывод этой программы.
                  ПЕЧАТЬ ИМЕНИ ПОЛЬЗОВАТЕЛЯ - ПРИМЕР

64 #include <pwd.h>
65 #include <grp.h>
66
67 /* print user and group name */
68
69 static void prntuser(struct stat *stbuf)
70 {
71     struct passwd *pw;
72     struct group *grp;
73
74     pw = getpwuid(stbuf->st_uid);
75     printf("user ID: %ld name: %s\t",
76         stbuf->st_uid, pw->pw_name);
77     grp = getgrgid(stbuf->st_gid);
78     printf("group ID: %ld group: %s\n",
79         stbuf->st_gid, grp->gr_name);
80 }
81
82 #include <time.h>
83
84 /* print the three time stamps */
85
86 static void prntimes(struct stat *stbuf)
87 {
88     printf("last access: \t\t%s",
89         ctime(&stbuf->st_atime));
90     printf("last modification: \t%s",
91         ctime(&stbuf->st_mtime));
92     printf("last status change: \t%s",
93         ctime(&stbuf->st_ctime));
94 }