이름이 같은 프로세스가 몇개가 떠있는지 C프로그램 내에서 확인하는 방법이 있나요?

siba555의 이미지

포크로 자식프로세스를 여러개 생성했는데 갯수를 확인 하려고 합니다. 프로세스 이름이 같은 것들의 갯수를 C 프로그램내에서 확인 할수 있는 방법이 있을까요?
감사합니다.

댓글

소타의 이미지

단순히 fork 한 차일드의 숫자들만 세는것이고 최상위 어미만 그것을 알면 된다면 fork()의 리턴값을 보고 카운트를 늘려주면 알 수 있을것 같은데요?

(차일드 맹그는 루프) {
 switch (fork()) {
  case 0: break;//자식
  case -1: exit(-1);//에러~
  default:
   count++;
  break;
 }
}
Anonymou의 이미지


먼저 모든 프로세스를 얻는다. 얻을때 PPID, PID, 프로그램명
이제 이 목록에서 PPID가 현재 PID인 모든 PID 프로세스 갯수를 센다.

모든 프로세스 갯수를 얻는 방법은 플랫폼마다 다양한데
/proc 밑을 조사하거나
vm 류 함수 사용
등으로 해결할 수 있다.