2011-09-20 4 views
2

간단한 질문; 사용자가 시스템 상에 존재 하는지를 알아 내기 위해 매우 간단한 프로그램 (C로 작성) (linux, 우분투)을 작성하는 데 사용해야하는 함수 또는 라이브러리는 무엇입니까? 내가 할 줄 떠들썩한 파티에서어떤 C 함수가 사용자가 시스템에 있는지 알아 내는데 사용됩니까?

:

'ls -la /home | grep $user | wc -l' 

을 나는 C (또는 파이썬)에 대한 POSIX 생각? 누구든지 시작할 수 있도록 도와 줄 수 있습니까?

예는 같은 완벽한 것 :

$ doesUserExist John 
0 

또는

$ doesUserExist John 
1 

감사합니다!

+0

아, 그리고 사용자의 홈 디렉토리가/위의 명령으로 집에있는 경우 BTW, 당신은 단지 확인. "getent passwd $ user" – thiton

답변

6

getpwnam은 passwd 데이터베이스에 대한 모든 액세스에 사용됩니다. NULL을 반환하면 사용자가 존재하지 않습니다.

+0

... 사용자가 있어야합니다. 그렇지 않으면 사용자가 있지만 자원 실패로 인해 조회를 수행 할 수 없습니다. –

+2

또한 현대 소프트웨어에서'getpwnam'보다는'getpwnam_r'을 사용해야합니다. –

관련 문제