How to identity processor architecture

Pravin Shedage pravinshedage2008 at gmail.com
Thu Jan 27 06:44:08 EST 2011


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
<hsggebhardt at googlemail.com>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
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>



-- 


Thanks & Regards,
---------PraviN---------
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20110127/39c367d2/attachment.html 


More information about the Kernelnewbies mailing list