获取cpu温度 应用可以定时获取cpu的温度,比如程序异常崩溃时,我们可能需要分析多方面原因,cpu温度就是其中之一。
代码:
左右滑动查看全部代码>>>
#include #include #include #include #include #define cpu_temp_file0 /sys/devices/virtual/thermal/thermal_zone0/tempstruct cpu_temperature{ int integer_part; int decimal_part;};typedef struct cpu_temperature cpu_temperature_t;cpu_temperature_t get_cpu_temperature(const char *_cpu_temp_file){ file *fp = null; cpu_temperature_t cpu_temperature = {0}; int temp = 0; fp = fopen(_cpu_temp_file, r); if (null == fp) { printf(fopen file error); return cpu_temperature; } fscanf(fp, %d, &temp); cpu_temperature.integer_part = temp / 1000; cpu_temperature.decimal_part = temp % 1000 / 100; fclose(fp); return cpu_temperature;}int main(int arc, char *argv[]){ cpu_temperature_t cpu_temperature = {0}; cpu_temperature = get_cpu_temperature(cpu_temp_file0); printf(cpu_temperature = %d.%d ℃, cpu_temperature.integer_part, cpu_temperature.decimal_part); return 0;} 运行结果:
获取文件大小 有时候我们需要获取某个文件的大小,比如如果需要发送文件里的内容,则需要知道文件的大小。
代码:
左右滑动查看全部代码>>>
#include #include #include long get_file_size(const char *_file_name){ file * fp = fopen(_file_name, r); if (null == fp) { printf(fopen error); return -1; } fseek(fp, 0l, seek_end); long size = ftell(fp); fclose(fp); return size;}int main(){ #define file_name ./get_file_size long file_size = get_file_size(file_name); printf(file_size = %ld, file_size); return 0;} 运行结果:
获取时间戳 系统时间戳很常用,比如log输出时,可以附带时间戳数据,方便分析。
代码:
左右滑动查看全部代码>>>
#include #include #include #include #include #include #include long long get_sys_time_ms(void){ long long time_ms = 0; struct timeval sys_current_time; gettimeofday(&sys_current_time, null); time_ms = ((long long)sys_current_time.tv_sec*1000000 + sys_current_time.tv_usec) / 1000; return time_ms;}int main(int arc, char *argv[]){ long long cur_sys_time = get_sys_time_ms(); printf(cur_sys_time = %lld ms, cur_sys_time); return 0;} 运行结果:
获取mac mac地址,有时候会作为设备id实用,作为设备唯一标识。
代码:
左右滑动查看全部代码>>>
#include #include #include #include #include #include int get_netif_mac(const char *_ifr_name, uint8_t *_mac){ int32_t ret = -1; struct ifreq m_ifreq; int32_t sock = 0; sock = socket(af_inet, sock_stream, 0); if (sock < 0) { printf(socket err); goto err; } strcpy(m_ifreq.ifr_name, _ifr_name); ret = ioctl(sock,siocgifhwaddr, &m_ifreq); if (ret >>
#include #include #include #include #include #include int get_local_ip(const char *_ifr_name, char *_ip){ int ret = -1; int sockfd; struct sockaddr_in sin; struct ifreq ifr; sockfd = socket(af_inet, sock_dgram, 0); if (-1 == sockfd) { printf(socket error); return ret; } strncpy(ifr.ifr_name, _ifr_name, ifnamsiz); ifr.ifr_name[ifnamsiz - 1] = 0; if (ioctl(sockfd, siocgifaddr, &ifr) < 0) { printf(ioctl error); close(sockfd); return ret; } memcpy(&sin, &ifr.ifr_addr, sizeof(sin)); int ip_len = snprintf(_ip, 32, %s, inet_ntoa(sin.sin_addr)); close(sockfd); ret = ip_len; return ret;}int main(int argc, char **argv){ char ip_str[32] = {0}; get_local_ip(wlan1, ip_str); printf(ip = %s, ip_str); return 0;} 运行结果:
以上就是本次分享的几个小的代码片段。
如果觉得文章有帮助,麻烦帮忙转发,谢谢!
3d地图智慧城市实景的运用是怎样的
ESD/浪涌保护器件使用方法:各类压敏电阻的特点
国产旗舰大对决:小米6跟华为P10谁能更受用户喜爱?
用三极管搭建的功放电路详解
可编程通用滤波器实现C-message加权功能
分享的几个小的代码片段
DWDM技术原理及其在城域网中的应用
Ka频段需要更多带宽?这里有三个选项
贴片元件的焊接教程 - 拖焊技巧
基于JMP软件侦测产线控制异常及改进GRR
赛默飞约17亿美元收购病毒载体制造商 加强基因疗法领域的制药服务能力
LibratoneTRACK+体验 极致简约的设计搭配上精致的做工和纤细柔顺的手感
TD-SCDMA系统的OMC功能测试引入网元仿真技术
网络银行业客服呼叫中心解决方案
华为提供5G创新应用金手指使能行业数字化转型
得翼通信发布基于Intel FPGA量产DFE IP
中软国际携手2023全球体验设计峰会,拥抱智慧商业新机遇
小米6最新消息:小米6新品发布会正在进行时!小米6精湛的工艺外观美轮美奂
!供应/维修/收购CTS60数字无线测试仪CTS-60何生1
小米6确认情人节发布,双版本,性价比颠覆