[devel] Нужно ли вызывать endpwent() после использования getpwuid() ?
Slava Semushin
=?iso-8859-1?q?slava=2Esemushin_=CE=C1_gmail=2Ecom?=
Пн Фев 26 16:32:03 MSK 2007
Здравствуйте!
Листал тут на работе книжку от O'Reilly "Secure Programming Book for C
and C++" и увидел такой пример:
%%
#include <sys/types.h>
#include <stdio.h>
#include <unistd.h>
#include <pwd.h>
int main(int argc, char *argv[]) {
uid_t uid;
struct passwd *pwd;
uid = getuid();
printf("User's UID is %d.\n", (int)uid);
if ( ! (pwd = getpwuid(uid))) {
printf("Unable to get user's password file record!\n");
endpwent();
return 1;
}
printf("User's home directory is %s\n", pwd->pw_dir);
endpwent();
return 0;
}
%%
Собственно, привлёк внимание факт вызова endpwent(). Почитал ман к
Линуксу, к Нетке, ещё каких-то в интернете и не очень понял,
действительно ли нужно после вызова getpwuid() вызывать endpwent().
Пожалуйста, разъясните этот момент, ведь если я правильно понял, то
невызов endpwent() чреват утечкой файлового дескриптора.
Заранее спасибо!
--
+ Slava Semushin | slava.semushin @ gmail.com
+ ALT Linux Team | php-coder @ altlinux.ru
Подробная информация о списке рассылки Devel