2013-09-23 3 views
0

나는 c api 호출을 사용하여/etc/passwd의 모든 레코드 항목을 반복하고 싶습니다.c를 사용하여/etc/passwd의 모든 항목을 반복하는 방법은 무엇입니까?

어떻게하면됩니까?

참고 : 다른 언어로이 작업을 수행하는 방법에 대한 예제가 많이 있지만 c의 예제는 없습니다.

+0

복제를이 질문을? http://stackoverflow.com/questions/18969582/how-do-i-iterate-through-all-the-entries-in-etc-passwd-using-c – dcaswell

+0

@dcaswell 그 * this * 질문에 링크 된 ... –

답변

2

이 작은 프로그램은 나를 위해 일한 :

#include <stdio.h> 
#include <pwd.h> 

int main(int argc, char **argv) { 

    struct passwd *pw; 

    setpwent(); 
    while ((pw = getpwent()) != NULL) 
    { 
     printf("%s\n", pw->pw_name); 
    } 
    endpwent(); 

    return 0; 
} 
+1

질문에 즉시 응답하는 것은 무엇입니까? 블로그에 게시 하시겠습니까? –

+2

이것은 스레드로부터 안전하지 않습니다. 다중 스레드 환경에서이 작업을 수행해야하는 경우 대신 ['fgetpwent_r (3)'] (http://linux.die.net/man/3/getpwent_r)을 사용해보십시오. –

+5

당신은 자신의 질문에 대한 대답에 전혀 문제가 없다는 것을 잘 알고 있습니다. @Kerrek. –

관련 문제