📄 vm_sys_info_linux32.c
字号:
/*//// INTEL CORPORATION PROPRIETARY INFORMATION// This software is supplied under the terms of a license agreement or// nondisclosure agreement with Intel Corporation and may not be copied// or disclosed except in accordance with the terms of that agreement.// Copyright(c) 2003-2005 Intel Corporation. All Rights Reserved.//*/#ifdef LINUX32#include "vm_sys_info.h"#include <time.h>#include <sys/sysinfo.h>#include <sys/utsname.h>#include <unistd.h>void vm_sys_info_get_date(vm_char *m_date, DateFormat df){ time_t ltime; struct tm *today; /* check error(s) */ if (NULL == m_date) return; time(<ime); today = localtime(<ime); switch (df) { case DDMMYY: strftime(m_date, 128, "%d/%m/%Y", today); break; case MMDDYY: strftime(m_date, 128, "%m/%d/%Y", today); break; case YYMMDD: strftime(m_date, 128, "%Y/%m/%d", today); break; default: strftime(m_date, 128, "%m/%d/%Y", today); break; }} /* void vm_sys_info_get_date(vm_char *m_date, DateFormat df) */void vm_sys_info_get_time(vm_char *m_time, TimeFormat tf){ time_t ltime; struct tm *today; /* check error(s) */ if (NULL == m_time) return; time(<ime); today = localtime(<ime); switch (tf) { case HHMMSS: strftime(m_time, 128, "%H:%M:%S", today); break; case HHMM: strftime(m_time, 128, "%H:%M", today); break; default: strftime(m_time, 128, "%H:%M:%S", today); break; }} /* void vm_sys_info_get_time(vm_char *m_time, TimeFormat tf) */vm_var32 vm_sys_info_get_cpu_num(void){ return 1;} /* vm_var32 vm_sys_info_get_cpu_num(void) */void vm_sys_info_get_cpu_name(vm_char *cpu_name){ FILE *pFile = NULL; vm_char buf[PATH_MAX]; vm_char tmp_buf[PATH_MAX]; vm_sizet len; /* check error(s) */ if (NULL == cpu_name) return; pFile = vm_file_open(VM_STRING("/proc/cpuinfo"), "r"); if (!pFile) return; while ((vm_file_gets(buf, PATH_MAX, pFile))) { if (!vm_string_strncmp(buf, VM_STRING("vendor_id"), 9)) { vm_string_strncpy(tmp_buf, (vm_char*)(buf + 12), vm_string_strlen(buf) - 13); } else if (!vm_string_strncmp(buf, VM_STRING("model name"), 10)) { if ((len = vm_string_strlen(buf) - 14) > 8) vm_string_strncpy(cpu_name, (vm_char *)(buf + 13), len); else vm_string_sprintf(cpu_name, VM_STRING("%s"), tmp_buf); } } fclose(pFile);} /* void vm_sys_info_get_cpu_name(vm_char *cpu_name) */void vm_sys_info_get_vga_card(vm_char *vga_card){ /* check error(s) */ if (NULL == vga_card) return;} /* void vm_sys_info_get_vga_card(vm_char *vga_card) */void vm_sys_info_get_os_name(vm_char *os_name){ struct utsname buf; /* check error(s) */ if (NULL == os_name) return; uname(&buf); vm_string_sprintf(os_name, VM_STRING("%s %s"), buf.sysname, buf.release);} /* void vm_sys_info_get_os_name(vm_char *os_name) */void vm_sys_info_get_computer_name(vm_char *computer_name){ /* check error(s) */ if (NULL == computer_name) return; gethostname(computer_name, 128);} /* void vm_sys_info_get_computer_name(vm_char *computer_name) */void vm_sys_info_get_program_name(vm_char *program_name){ vm_char path[PATH_MAX] = {0,}; vm_sizet i = 0; /* check error(s) */ if (NULL == program_name) return; readlink("/proc/self/exe", path, sizeof(path)); i = vm_string_strrchr(path, (vm_char)('/')) - path + 1; vm_string_strncpy(program_name,path + i,vm_string_strlen(path) - i);} /* void vm_sys_info_get_program_name(vm_char *program_name) */void vm_sys_info_get_program_path(vm_char *program_path){ vm_char path[ PATH_MAX ]={0,}; vm_sizet i = 0; /* check error(s) */ if (NULL == program_path) return; readlink("/proc/self/exe", path, sizeof(path)); i = vm_string_strrchr(path, (vm_char)('/')) - path + 1; vm_string_strncpy(program_path,path,i-1);} /* void vm_sys_info_get_program_path(vm_char *program_path) */void vm_sys_info_get_program_description(vm_char *program_description){ /* check error(s) */ if (NULL == program_description) return;} /* void vm_sys_info_get_program_description(vm_char *program_description) */vm_var32 vm_sys_info_get_cpu_speed(void){ FILE *pFile = NULL; vm_char buf[PATH_MAX]; double ret = 0; pFile = vm_file_open(VM_STRING("/proc/cpuinfo"), "r" ); if (!pFile) return 1000; while ((vm_file_gets(buf, PATH_MAX, pFile))) { if (!vm_string_strncmp(buf, VM_STRING("cpu MHz"), 7)) { ret = vm_string_atol((vm_char *)(buf + 10)); break; } } fclose(pFile); return ((vm_var32) ret);} /* vm_var32 vm_sys_info_get_cpu_speed(void) */vm_var32 vm_sys_info_get_mem_size(void){ struct sysinfo info; sysinfo(&info); return (vm_var32)((double)info.totalram / (1024 * 1024) + 0.49);} /* vm_var32 vm_sys_info_get_mem_size(void) */#endif /* LINUX32 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -