C言語システムコール-uname
unameシステムコール
概要
unameはシステム情報を取得します。
システム情報はutsname構造体に格納されます。
struct utsname {
char sysname[]; /* OSの名前 */
char nodename[]; /* ノード(ホスト)名 */
char release[]; /* OSのリリース情報 */
char version[]; /* OSのバージョン */
char machine[]; /* マシンの種類 */
}
サンプルプログラム
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <sys/utsname.h>
/*!
* @brief システム情報を出力する
* @return 0:success/-1:failure
*/
static int
show_system_info(void)
{
struct utsname uts;
int rc = 0;
rc = uname(&uts);
if(rc < 0){
printf("Error: uname() %s\n", strerror(errno));
return(-1);
}
fprintf(stdout, "sysname = %s\n", uts.sysname);
fprintf(stdout, "nodename = %s\n", uts.nodename);
fprintf(stdout, "release = %s\n", uts.release);
fprintf(stdout, "version = %s\n", uts.version);
fprintf(stdout, "machine = %s\n", uts.machine);
return(0);
}
int
main(int argc, char *argv[])
{
int rc = 0;
if(argc != 1){
fprintf(stderr, "Usage: %s\n", argv[0]);
exit(EXIT_FAILURE);
}
rc = show_system_info();
if(rc != 0) exit(EXIT_FAILURE);
exit(EXIT_SUCCESS);
}