proc/pid(숫자)밑에 어떤 동일한 파일을 각 pid디렉토리마다 훑으면서 여는법 아시는분~

kywpcm의 이미지

proc/pid/에 smaps라는 동일한 파일을
각 프로세스(pid)마다 열고 싶습니다.

open함수를 이용할 경우
open("/proc/1/smaps", O_RDONLY);

머 이런식으루 pid에 넘버링이 들어가는데
저것을 전부 다 훑으면서 파일을 열 방법이 없을까요?
(그리고 아시겠지만 모든 넘버의 프로세스가 있는건 아니더군요.
pid가 1,2,3,... 이 아니라 띄엄띄엄 1,5,100,1203,... 이런식으루 되있어서
더 접근하기가 힘든것 같습니다.)

초보라서, 몇시간 째 고민하다가, 질문해요..
도와주세요,,

lovian의 이미지

/proc 디렉터리의 목록이 원하시는 것들 입니다.
ls /proc 만 해도 목록을 확인 할 수 있지요.

opendir, readdir, closedir 같은 api로 목록을 뽑아내신 후 원하시는 작업을 하면 되겠네요.

-----------------
한글을 사랑합니다.

kywpcm의 이미지

관심 감사합니다 ㅎㅎ

bushi의 이미지

게으른 자에게 복이 있나니...
man 페이지에 나오는 example 을 아주 조금 수정했습니다.

#include <stdio.h>
#include <stdlib.h>
#include <wordexp.h>
 
int main(int argc, char **argv)
{
        wordexp_t p;
        char **w;
        int i, ret;
 
        ret = wordexp("/proc/*/smaps", &p, 0);
        if (ret == 0) {
                w = p.we_wordv;
                for (i = 0; i < p.we_wordc; i++)
                        printf("%s\n", w[i]);
                wordfree(&p);
        }
 
        return EXIT_SUCCESS;
}
kywpcm의 이미지

조금 있다가 시도 해 봐야지요.