POSIX provides a C function uname as well. You can get similar result like the shell command uname
:
#include <stdio.h>
#include <sys/utsname.h>
int main(){
struct utsname buf;
uname(&buf);
printf("sysname: %s\nversion: %s\nmachine: %s\n ", buf.sysname, buf.version, buf.machine);
return 0;
}
Output on my machine:
sysname: Linux
version: #1 SMP Tue Oct 2 22:01:37 EDT 2012
machine: i686