반응형

SUN SOLARIS 프로세서 목록 출력하기

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <dirent.h>
#include <sys/fcntl.h>
#include <sys/procfs.h>

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

    getProcessList();

}


int getProcessList()
{
        int         fd;

        DIR         *dirp;
        char        pathName[256];
        struct      dirent  *direntp;
        prpsinfo_t  psInfo;

        if ((dirp = opendir("/proc")) == NULL) {
                fprintf(stderr,"opendir fail; err[%d][%s]\n",errno,strerror(errno));
                return -1;
        }

        while ((direntp = readdir (dirp)) != NULL) {

                if ( !strcmp ( direntp->d_name, ".") || !strcmp ( direntp->d_name, ".." ) )  {
                    continue;
                }

                memset(pathName, 0x00, sizeof(pathName));
                sprintf (pathName, "%s/%s", "/proc", direntp->d_name);

                if ( (fd = open ( pathName, O_RDONLY )) < 0 ) {
                    continue;
                }

                if ( ioctl ( fd, PIOCPSINFO, &psInfo ) < 0) {
                        close ( fd );
                        continue;
                }

                close (fd);

                fprintf(stdout, "[%s][%s][%s] \n", direntp->d_name, psInfo.pr_fname, psInfo.pr_psargs);

        }

        closedir (dirp);
       
        return 1;
}

 

 

/proc 밑에 파일 구성...

 

# pwd
/proc

 

# ls -al  /proc/

 250 dr-xr-xr-x 111 root     root      127680  5월 28일  15:25 ./
   2 drwxr-xr-x  27 root     root         512  4월 23일  09:16 ../
   2 dr-x--x--x   5 root     root         832  5월 14일  16:23 0/
   2 dr-x--x--x   5 root     root         832  5월 14일  16:23 1/
   2 dr-x--x--x   5 user1    user1        832  5월 27일  18:17 10525/
   2 dr-x--x--x   5 root     root         832  5월 14일  16:24 124/
   2 dr-x--x--x   5 daemon   daemon       832  5월 14일  16:24 131/
   2 dr-x--x--x   5 root     root         832  5월 28일  10:48 13442/
   2 dr-x--x--x   5 user1    user1        832  5월 28일  10:48 13445/
   :
   :

]# ls -al /proc/10525/

   2 dr-x--x--x   5 user1       user1           832  5월 27일  18:17 ./
 250 dr-xr-xr-x 111 root        root         127680  5월 28일  15:27 ../
5472 -rw-------   1 user1       user1       2801664  5월 27일  18:17 as
   1 -r--------   1 user1       user1           152  5월 27일  18:17 auxv
   1 dr-x------   2 user1       user1            32  5월 27일  18:17 contracts/
   1 -r--------   1 user1       user1            36  5월 27일  18:17 cred
   0 --w-------   1 user1       user1             0  5월 27일  18:17 ctl
   0 lr-x------   1 user1       user1             0  5월 27일  18:17 cwd -> /
   1 dr-x------   2 user1       user1           144  5월 27일  18:17 fd/
   1 -r--r--r--   1 user1       user1           120  5월 27일  18:17 lpsinfo
   2 -r--------   1 user1       user1           912  5월 27일  18:17 lstatus
   2 -r--r--r--   1 user1       user1           536  5월 27일  18:17 lusage
   1 dr-xr-xr-x   3 user1       user1            64  5월 27일  18:17 lwp/
   5 -r--------   1 user1       user1          2112  5월 27일  18:17 map
   2 dr-x------   2 user1       user1           544  5월 27일  18:17 object/
   6 -r--------   1 user1       user1          2568  5월 27일  18:17 pagedata
   2 dr-x------   2 user1       user1           688  5월 27일  18:17 path/
   1 -r--------   1 user1       user1            72  5월 27일  18:17 priv
   1 -r--r--r--   1 user1       user1           336  5월 27일  18:17 psinfo
   5 -r--------   1 user1       user1          2112  5월 27일  18:17 rmap
   0 lr-x------   1 user1       user1             0  5월 27일  18:17 root -> /
   3 -r--------   1 user1       user1          1536  5월 27일  18:17 sigact
   3 -r--------   1 user1       user1          1232  5월 27일  18:17 status
   1 -r--r--r--   1 user1       user1           256  5월 27일  18:17 usage
   0 -r--------   1 user1       user1             0  5월 27일  18:17 watch
   7 -r--------   1 user1       user1          3344  5월 27일  18:17 xmap
  
#

 

 

 

 

반응형
Posted by 공간사랑
,