getpwent() szwankuje na multilib-ie?

Pawel Sikora pluto at agmk.net
Fri Nov 19 13:12:08 CET 2010


witam,

mam taka sytuacje, ze gdy odpalam 32-bitowa aplikacje na 64-bitowym pld,
to getpwent() i zwraca mi danych uzytkowanika, ktore sa pobierane z NIS-a.

$ g++ home.cpp -m64 && ./a.out
/ahome/pawels

$ g++ home.cpp -m32 && ./a.out
homeless?

$ cat home.cpp
#include <cstdio>
#include <pwd.h>
#include <unistd.h>
int main()
{
        ::uid_t euid = ::geteuid();
        for ( struct passwd const* p = ::getpwent(); p; p = ::getpwent() )
                if ( p->pw_uid == euid )
                {
                        std::puts( p->pw_dir );
                        ::endpwent();
                        return 0;
                }
        ::endpwent();
        std::puts( "homeless?" );
        return 1;
}

moze to ktos potwierdzic? na konsoli nie mam zadnych logow o brakujacych bibliotkeach, itp.

ypcat, wyglada, ze dziala:

# setarch i686 ypcat -k passwd|grep pawels
pawels pawels:<ciach>.:1074:500:Pawel Sikora:/ahome/pawels:/bin/zsh

# setarch x86_64 ypcat -k passwd|grep pawels
pawels pawels:<ciach>.:1074:500:Pawel Sikora:/ahome/pawels:/bin/zsh

wiec co? kwas w glibcu?


More information about the pld-devel-pl mailing list