Pravin Shedage wrote:
Hi,

This C program might help you.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <sys/utsname.h>

int main()
{
    struct utsname *buf = NULL;



    buf = malloc(sizeof(struct utsname));
    if (buf == NULL) {
        fprintf(stderr,"Memory Allocation Error: %s \n", strerror(errno));
        exit(-1);
    }

    if (uname(buf) < 0) {
        fprintf(stderr,"UName Error: %s \n", strerror(errno));
        exit(-1);
    }

    printf ("Processor arch =:>) %s \n", buf->machine);

    return 0;
}




On Thu, Jan 27, 2011 at 4:45 PM, Henry Gebhardt <[email protected] <mailto:[email protected]>> wrote:

    On Thu, Jan 27, 2011 at 03:23:28PM +0530, prabhu wrote:
    > Any C programming technique apart from using this /proc/cpuinfo
    detail?

    What about using the machine field of uname(2):

      $ man 2 uname

    Quoting from that man page:

      [...] the operating system  presumably  knows  its name,  release
      and version.   It also knows what hardware it runs on.

    Perhaps a downside, it returns the machine type as a string.  Does
    that
    do what you want?

    I also find "man linux32" rather interesting:

       setarch  -  change reported architecture in new program environment
       and set personality flags

    Might be useful for testing.


    Greetings,
    Henry


Both Ideas give the  Kernel architecture not cpu architecture.

You can get exact cpu architecture through lshw command.

*-cpu
         product: Intel(R) Pentium(R) Dual  CPU  E2160  @ 1.80GHz
         vendor: Intel Corp.
         physical id: 1
         bus info: cpu@0
         version: 6.15.13
         serial: 0000-06FD-0000-0000-0000-0000
         size: 1200MHz
         capacity: 1200MHz
         width: 64 bits
capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx x86-64 constant_tsc arch_perfmon pebs bts pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm lahf_lm cpufreq
         configuration: id=1
       *-logicalcpu:0
            description: Logical CPU
            physical id: 1.1
            width: 64 bits
            capabilities: logical
       *-logicalcpu:1
            description: Logical CPU
            physical id: 1.2
            width: 64 bits
            capabilities: logical

    _______________________________________________
    Kernelnewbies mailing list
    [email protected]
    <mailto:[email protected]>
    http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies




--


Thanks & Regards,
---------PraviN---------


------------------------------------------------------------------------

_______________________________________________
Kernelnewbies mailing list
[email protected]
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

_______________________________________________
Kernelnewbies mailing list
[email protected]
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

Reply via email to