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);
}


関連ページ