C Libraries??


 
Thread Tools Search this Thread
Top Forums Programming C Libraries??
# 8  
Old 07-08-2004
Driver, thank you so much for all your explanations. you make everything so easy to understand. Smilie
# 9  
Old 07-08-2004
In following the above error, the following is noticed:

C library on Linux, specifically file /usr/include/sys/procfs.h has an incomplete struct of:

Code:
 

struct elf_prpsinfo

  {

    char pr_state;                      /* Numeric process state.  */

    char pr_sname;                      /* Char for pr_state.  */

    char pr_zomb;                       /* Zombie.  */

    char pr_nice;                       /* Nice val.  */

    unsigned long int pr_flag;          /* Flags.  */

    unsigned short int pr_uid;

    unsigned short int pr_gid;

    int pr_pid, pr_ppid, pr_pgrp, pr_sid;

    /* Lots missing */

    char pr_fname[16];                  /* Filename of executable.  */

    char pr_psargs[ELF_PRARGSZ];        /* Initial part of arg list.  */

  };


On Solaris, file /usr/indlue/sys/old_procfs.h has a complete stuct of:

Code:
 

typedef struct prpsinfo {

        char    pr_state;       /* numeric process state (see pr_sname) */

        char    pr_sname;       /* printable character representing pr_state */

        char    pr_zomb;        /* !=0: process terminated but not waited for */

        char    pr_nice;        /* nice for cpu usage */

        uint_t  pr_flag;        /* process flags */

        uid_t   pr_uid;         /* real user id */

        gid_t   pr_gid;         /* real group id */

        pid_t   pr_pid;         /* unique process id */

        pid_t   pr_ppid;        /* process id of parent */

        pid_t   pr_pgrp;        /* pid of process group leader */

        pid_t   pr_sid;         /* session id */

        caddr_t pr_addr;        /* physical address of process */

        size_t  pr_size;        /* size of process image in pages */

        size_t  pr_rssize;      /* resident set size in pages */

        caddr_t pr_wchan;       /* wait addr for sleeping process */

        timestruc_t pr_start;   /* process start time, sec+nsec since epoch */

        timestruc_t pr_time;    /* usr+sys cpu time for this process */

        int     pr_pri;         /* priority, high value is high priority */

        char    pr_oldpri;      /* pre-SVR4, low value is high priority */

        char    pr_cpu;         /* pre-SVR4, cpu usage for scheduling */

        o_dev_t pr_ottydev;     /* short tty device number */

        dev_t   pr_lttydev;     /* controlling tty device (PRNODEV if none) */

        char    pr_clname[PRCLSZ];      /* scheduling class name */

        char    pr_fname[PRFNSZ];       /* last component of execed pathname */

        char    pr_psargs[PRARGSZ];     /* initial characters of arg list */

        short   pr_syscall;     /* system call number (if in syscall) */

        short   pr_fill;

        timestruc_t pr_ctime;   /* usr+sys cpu time for reaped children */

        size_t  pr_bysize;      /* size of process image in bytes */

        size_t  pr_byrssize;    /* resident set size in bytes */

        int     pr_argc;        /* initial argument count */

        char    **pr_argv;      /* initial argument vector */

        char    **pr_envp;      /* initial environment vector */

        int     pr_wstat;       /* if zombie, the wait() status */

                        /* The following percent numbers are 16-bit binary */

                        /* fractions [0 .. 1] with the binary point to the */

                        /* right of the high-order bit (one == 0x8000) */

        ushort_t pr_pctcpu;     /* % of recent cpu time, one or all lwps */

        ushort_t pr_pctmem;     /* % of of system memory used by the process */

        uid_t   pr_euid;        /* effective user id */

        gid_t   pr_egid;        /* effective group id */

        id_t    pr_aslwpid;     /* lwp id of the aslwp; zero if no aslwp */

        char    pr_dmodel;      /* data model of the process */

        char    pr_pad[3];

        int     pr_filler[6];   /* for future expansion */

} prpsinfo_t;

My application needs to access the psinfo, how can i solve this problem? also, my application needs to be able to port across the two OS. I have no clue on how to do this. Any suggestions would be greatly appreciated. I'm trying to develop an app. to monitor cpu usage of active processes, if there's an easier way to do this in C please please direct me to it. I think i'm beating myself up with trying to use the library.

very frustrated!! Smilie
# 10  
Old 07-08-2004
By saying a structure is incomplete simply b/c it says so right in the middle of the struct:

Code:
struct elf_prpsinfo

  {

    char pr_state;                      /* Numeric process state.  */

    char pr_sname;                      /* Char for pr_state.  */

    char pr_zomb;                       /* Zombie.  */

    char pr_nice;                       /* Nice val.  */

    unsigned long int pr_flag;          /* Flags.  */

    unsigned short int pr_uid;

    unsigned short int pr_gid;

    int pr_pid, pr_ppid, pr_pgrp, pr_sid;

    /* Lots missing */

    char pr_fname[16];                  /* Filename of executable.  */

    char pr_psargs[ELF_PRARGSZ];        /* Initial part of arg list.  */

  };

In comparision to the equivalent struct of Solaris, there are many fields that supposed to be in this stuct.

i'll look into the top program as you suggested. however, i have already written a shell script to use top, but i wanted to further create a C app. Can i access top's functions in my app? i'll investigate on this. Again, thanks for your suggestion.
[B]
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

PATH for c libraries

Hello, I met a problem when running a java program. When I did the debugging: srna/ExeFiles/linux$ ldd patman linux-gate.so.1 => (0xf77b5000) libpopt.so.0 => not found libstdc++.so.6 => not found libm.so.6 => /lib32/libm.so.6 (0xf7778000) libgcc_s.so.1 => not found ... (5 Replies)
Discussion started by: yifangt
5 Replies

2. Solaris

odbc libraries

Hi, this is my first experience with Solaris. For work, I must configured an applicacion (oracle EPM, this include Datadirect odbc drivers) in solaris. Additionally, we must connect to Sybase IQ Database (I installed odbc drivers to do this). The problem is, I can't get those two odbc... (1 Reply)
Discussion started by: dmedinacl
1 Replies

3. Programming

I want to know some c libraries

I'm a rookie to C and i'm looking for some libraries to learn,something likes the C++ STL or Boost ,does any1 can tell me some of them?Thanks a lot:) Eric (3 Replies)
Discussion started by: homeboy
3 Replies

4. Shell Programming and Scripting

How to use two different libraries?

Hello, I need to use two different libraries like /usr/local/bin/expect and /usr/bin/ksh at the same script. Is it possible? (4 Replies)
Discussion started by: fozay
4 Replies

5. UNIX for Dummies Questions & Answers

libraries

I am slowly ploughing my way through the list of links to on-line tutorials you provided to newbies. I for one am grateful for such a comprehensive list, so first of all thank you for that. What i cannot seem to find, is information on C++ libraries: The two links on libraries in your list... (0 Replies)
Discussion started by: pil888
0 Replies

6. HP-UX

v2 standard libraries

I am a bit confused about the use of _v2 standard libraries on HP. I am working on HP11.11 risk machine and HP 11.23 Itanium machine. I am building a C++ shared library which is linked by a JNI shared library and other non-java related libraries. Eveything is compiled with -AA flag. When I... (0 Replies)
Discussion started by: cactuar
0 Replies

7. Linux

Where to get X window Libraries?

Hey, I'm trying to install fluxbox. Currently i'm running Mandrake 10.1 with KDE. When i ./configure fluxbox it returns an error saying configure: error: Fluxbox requires the X Window System libraries and headers. Where do i download the X window System libraries and headers from? I... (3 Replies)
Discussion started by: byblyk
3 Replies

8. Linux

Shared Libraries

How do i make a library shared say i have a library a.so which i have just compiled. I want to make it shared how do i make it Next Queation is what is the difference between a.so.0 a.so.1 a.so.2 & a.so :rolleyes: (1 Reply)
Discussion started by: wojtyla
1 Replies

9. IP Networking

Libraries

How is Libnet and libpcap are useful in sending a packet through DLL layer and sniff network layer? and how sinffers are used to track ip adresses provided Mac adresses? (1 Reply)
Discussion started by: netsavy
1 Replies

10. Programming

libraries missing in C

some libraries are missing like conio.h and syslib.h how can i have them installed ? (4 Replies)
Discussion started by: C|[anti-trust]
4 Replies
Login or Register to Ask a Question