Server for Information Technologies Сервер поддерживается
Центром Информационных Технологий
(095) 932-9212, 932-9213, 939-0783
E-mail: info@citforum.ru
Сервер содержит море(!) аналитической информации CIT Forum CD-ROM

GETPWENT(3C)

НАЗВАНИЕ
getpwent, getpwuid, getpwnam, setpwent, endpwent, fgetpwent - получение элементов файла паролей

СИНТАКСИС

	#include <pwd.h>
	
	struct passwd *getpwent ( )
	
	struct passwd *getpwuid (uid)
	int uid;
	
	struct passwd *getpwnam (name)
	char *name;
	
	void setpwent ( )
	
	void endpwent ( )
	
	struct passwd *fgetpwent (f)
	FILE *f;

ОПИСАНИЕ
Каждая из функций getpwent, getpwuid и getpwnam возвращает указатель на структуру типа passwd, содержащую разложенную на поля строку файла паролей /etc/passwd. Структура описана во включаемом файле :

     struct passwd {
       char *pw_name;
       char *pw_passwd;
       int  pw_uid;
       int  pw_gid;
       char *pw_age;
       char *pw_comment;
       char *pw_gecos;
       char *pw_dir;
       char *pw_shell;
     };
По поводу смысла полей структуры см. passwd(4).

При первом вызове функция getpwent возвращает указатель на первую структуру типа passwd в файле; при следующем вызове возвращается указатель на следующую структуру; поэтому последовательные вызовы функции можно использовать для просмотра всего файла. Функция getpwuid ищет с начала файла строку, содержащую заданный идентификатор пользователя uid, и возвращает указатель на структуру, соответствующую искомой строке. Функция getpwnam ищет с начала файла строку, содержащую специфицированное входное имя name и возвращает указатель на соответствующую структуру. В случае неудачного поиска (в том числе из за ошибки чтения) описанные функции возвращают пустой указатель NULL.

Вызов функции setpwent приводит к переустановке указателя чтения на начало файла паролей, то есть после этого вызова можно снова повторить просмотр всего файла. Функция endpwent служит для закрытия файла паролей.

Функция fgetpwent возвращает указатель на очередную структуру типа passwd в потоке f, удовлетворяющем формату файла /etc/passwd.

ФАЙЛЫ

	/etc/passwd

СМ. ТАКЖЕ
getlogin(3C), getgrent(3C), passwd(4).

ДИАГНОСТИКА
В случае неудачного поиска (в том числе из за ошибки чтения) возвращается пустой указатель NULL.

ПРЕДОСТЕРЕЖЕНИЯ
Описанные функции используют стандартный пакет ввода/ вывода, что приводит к неожиданному увеличению размера программ, не использующих стандартный ввод/вывод.

ОГРАНИЧЕНИЯ
Значения, возвращаемые описанными функциями, указывают на один и тот же статический массив, содержимое которого полностью изменяется после каждого вызова. Поэтому, если необходимо сохранить полученную с помощью функций информацию, следует скопировать ее.
Comments: info@citmgu.ru
Designed by Andrey Novikov
Copyright © CIT
ы с расширениями .f. Об ектные .o-файлы не создаются.

-m
Перед препроцессированием EFL- и RATFOR-файлов обработать их макропроцессором m4.

-E
Стоящие после этого флага символы используются как аргументы команды efl каждый раз, когда обрабатывается .e-файл.

-R
Стоящие после этого флага символы используются как аргументы команды ratfor каждый раз, когда обрабатывается .r-файл.

-v
Информационный режим. Выдавать полную диагностику во время компиляции.

-Ncглубина
Изменить максимально допустимую глубину вложенности условных операторов и DO-циклов. Подразумевается 20.

-Nlстепень_разветвления
Изменить максимально допустимое число меток в вычисляемом goto и допустимое число альтернативных точек возврата. Подразумевается 125.

-Nqчисло_эквивалентностей
Изменить максимально допустимое число связей, устанавливаемых операторами EQUIVALENCE в одной программной единице. Подразумевается 150.

-Nnразмер
Изменить размер таблицы имен. Подразумевается 401.

-Nsчисло_меток
Изменить максимально допустимое число меток у операторов одной программной единицы. Подразумевается 201.

-Nxчисло_внешних_имен
Изменить максимально допустимое число внешних имен. Подразумевается 200.

Остальные аргументы рассматриваются как опции редактора связей, имена об ектных модулей, совместимых с f77-программами (обычно эти модули получены в результате предшествующих запусков компилятора), или, возможно, библиотек f77-совместимых программ. Эти программы, вместе с результатами текущей компиляции, обрабатываются редактором связей, и созданная выполняемая программа, если не указана опция редактора связей -o, помещается в файл a.out.

ОКРУЖЕНИЕ

SHLIB
Если переменная SHLIB имеет значение YES, будут использоваться разделяемые версии библиотек libc*.

STACKCHECK
Если переменная STACKCHECK имеет значение ON, порождаются команды для контроля стека.

FP
Если переменная FP имеет значение M68881, компилятор генерирует инструкции для сопроцессора MC68881, поддерживающего арифметику вещественных чисел. Если результат какой-либо функции является вещественным, он возвращается только в регистре %fp0. Если переменная FP равна M68881u, вещественные значения возвращаются еще и в регистрах %d0/ %d1 для совместимости со старыми библиотеками.

Компилятор выбирает соответствующие версии библиотек libc и libm согласно значениям переменных окружения FP и SHLIB.

ФАЙЛЫ

  файл.[fresc]          Исходный файл.
  файл.o                Об ектный файл.
  файл.s                Ассемблерный файл.
  a.out                 Результат  работы  редактора свя-
 		        зей.
  /usr/tmp/F77*         Временные файлы.
  /lib/cpp              Препроцессор.
  /usr/bin/ratfor       Препроцессор ratfor(1).
  /usr/bin/efl          Препроцессор efl(1).
  /usr/bin/f77pass1     Компилятор, проход 1.
  /usr/bin/f77pass2     Компилятор, проход 2.
  /lib/optim            Необязательный  оптимизатор  об -
  		        ектного кода.
  /bin/as               Ассемблер as(1).
  /bin/ld               Редактор связей ld(1).
  /lib/crt1.o
  /lib/crtn.o           Стандартная программа инициализа-
		        ции.
  /lib/mcrt0.o          Программа  инициализации профили-
		        рования.
  /lib/libc.a           Стандартная библиотека, см.  раз-
		        дел 3C.
  /lib/libm.a           Математическая   библиотека,  см.
 		        раздел 3M.
  /lib/lib*_s.a         Разделяемые версии библиотек.
  /lib/lib*881.a        Версии библиотек для сопроцессора
		        арифметики вещественных чисел.
  /lib/lib*881u.a       Универсальные версии библиотек.
  /usr/lib/libp/*.a     Версии библиотек для профилирова-
		        ния.
  /usr/lib/libF77.a     Библиотека встроенных функций.
  /usr/lib/libF77_881.a Версия    библиотеки   встроенных
		        функций для сопроцессора  арифме-
		        тики вещественных чисел.
  /usr/lib/libI77.a     Библиотека ввода/вывода Фортрана.
  /usr/lib/libI77_881.a Версия   библиотеки  ввода/вывода
  		        для сопроцессора  арифметики  ве-
		        щественных чисел.

СМ. ТАКЖЕ
as(1), cc(1), efl(1), fsplit(1), ld(1), m4(1), prof(1), ratfor(1), sdb(1).

ДИАГНОСТИКА
Диагностика, выдаваемая собственно компилятором f77, не нуждается в раз яснениях. Замысловатые сообщения могут вырабатываться редактором связей ld(1).

СЮРПРИЗЫ
Компилятор f77 генерирует неправильные команды при вызове функций с результатом типа CHARACTER - неверно корректируется указатель стека. По этой же причине не работают операторы ENTRY.

При компиляции оператора INQUIRE генерируется имя L%0, которое нигде не определяется. В результате редактор связей ld(1) фиксирует фатальную ошибку.
Comments: info@citmgu.ru
Designed by Andrey Novikov
Copyright © CIT