尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

2. 应用编程---获取系统信息与系统资源

2. 应用编程---获取系统信息与系统资源
📅 发布时间:2026/7/2 10:53:22

获取系统信息与系统资源

  • 1. 获取系统信息---uname() / sysinfo() / gethostname() / sysconf()
    • 1.1 proc文件系统
  • 2. 获取系统时间---time() / gettimeofday() / ctime() / ctime_r() / localtime() / localtime_r() / gmtime() / gmtime_r() / mktime() / asctime() / asctime_r() / strftime() / settimeofday()
  • 3. 随机数---rand() / srand() / random() / srandom() / initstate() / setstate()
  • 4. 休眠---sleep() / usleep() / nanosleep()
  • 5. 堆内存---malloc() / free() / calloc() / posix_memalign() / aligned_alloc() / memalign() / valloc() / pvalloc()

1. 获取系统信息—uname() / sysinfo() / gethostname() / sysconf()

#include<sys/utsname.h>intuname(structutsname*buf);// 系统调用,用于获取有关当前操作系统内核的名称和信息intsysinfo(structsysinfo*info);// 系统调用,用于获取一些系统统计信息intgethostname(char*name,size_tlen);// 系统调用,用于单独获取Linux系统主机名longsysconf(intname);// 系统调用,用于在运行时获取系统的一些配置信息,譬如页大小(page size)、主机名的最大长度、进程可以打开的最大文件数、每个用户ID的最大并发进程数等


1.1proc文件系统


2. 获取系统时间—time() / gettimeofday() / ctime() / ctime_r() / localtime() / localtime_r() / gmtime() / gmtime_r() / mktime() / asctime() / asctime_r() / strftime() / settimeofday()

#include<time.h>#include<sys/time.h>time_ttime(time_t*tloc);// 系统调用,用于获取当前时间,以秒为单位(返回得到的值是自1970-01-01 00:00:00 +0000 (UTC)以来的秒数)intgettimeofday(structtimeval*tv,structtimezone*tz);// 系统调用,用于用于获取当前时间(微秒级时间精度)char*ctime(consttime_t*timep);// C库,用于将日历时间转换为可打印输出的字符串形式char*ctime_r(consttime_t*timep,char*buf);// C库,用于将日历时间转换为可打印输出的字符串形式structtm*localtime(consttime_t*timep);// C库,用于将日历时间转换为可打印输出的字符串形式(得到的是本地标准时间)structtm*localtime_r(consttime_t*timep,structtm*result);// C库,用于将日历时间转换为可打印输出的字符串形式(得到的是本地标准时间)structtm*gmtime(consttime_t*timep);// C库,用于将日历时间转换为可打印输出的字符串形式(得到的是UTC国际标准时间)structtm*gmtime_r(consttime_t*timep,structtm*result);// C库,用于将日历时间转换为可打印输出的字符串形式(得到的是UTC国际标准时间)time_tmktime(structtm*tm);// C库,用于将使用struct tm结构体表示的分解时间转换为time_t时间(日历时间)char*asctime(conststructtm*tm);// C库,用于将时间转换为可打印输出的字符串形式(将struct tm表示的分解时间转换为固定格式的字符串)char*asctime_r(conststructtm*tm,char*buf);// C库,用于将时间转换为可打印输出的字符串形式(将struct tm表示的分解时间转换为固定格式的字符串)size_tstrftime(char*s,size_tmax,constchar*format,conststructtm*tm);// C库,用于将一个struct tm变量表示的分解时间转换为为格式化字符串(可以根据自己的喜好自定义时间的显示格式)intsettimeofday(conststructtimeval*tv,conststructtimezone*tz);// 系统调用,用于设置系统的本地时间(只有超级用户(root)才可以设置系统时间)

3. 随机数—rand() / srand() / random() / srandom() / initstate() / setstate()

#include<stdlib.h>intrand(void);// C库,用于获取随机数,多次调用 rand() 可得到一组随机数序列voidsrand(unsignedintseed);// C库,用于设置随机数种子(随机数种子相同,每次 rand() 所得到的随机数序列就是一样的)

4. 休眠—sleep() / usleep() / nanosleep()

#include<unistd.h>unsignedintsleep(unsignedintseconds);// C库,用于让程序“休息”一会,然后再继续工作(若被信号中断则返回剩余的秒数)intusleep(useconds_tusec);// C库intnanosleep(conststructtimespec*req,structtimespec*rem);// 系统调用

5. 堆内存—malloc() / free() / calloc() / posix_memalign() / aligned_alloc() / memalign() / valloc() / pvalloc()

#include<stdlib.h>#include<malloc.h>void*malloc(size_tsize);// C库,为程序分配一段堆内存voidfree(void*ptr);// C库,释放堆内存void*calloc(size_tnmemb,size_tsize);// C库,用来动态地分配内存空间并初始化为0intposix_memalign(void**memptr,size_talignment,size_tsize);// C库,用于在堆上分配size个字节大小的对齐内存空间,将*memptr指向分配的空间,分配的内存地址将是参数alignment的整数倍void*aligned_alloc(size_talignment,size_tsize);// C库,用于分配size个字节大小的内存空间,返回指向该空间的指针void*memalign(size_talignment,size_tsize);// C库,用于分配size个字节大小的内存空间,返回指向该空间的指针void*valloc(size_tsize);// 系统调用,用于分配size个字节大小的内存空间,返回指向该内存空间的指针,内存空间的地址是页大小(pagesize)的倍数void*pvalloc(size_tsize);// 系统调用,用于分配size个字节大小的内存空间,返回指向该内存空间的指针,内存空间的地址是页大小(pagesize)的倍数

相关新闻

  • douyin-downloader技术实现深度解析:架构设计与性能优化指南
  • 如何用Deceive实现游戏隐身:终极隐私保护指南
  • 拒绝套路化绘画:蕃茄田美育理念适用性分析

最新新闻

  • 基于KMR221与STM32F334R8的高精度电压监测系统设计
  • 零代码是什么?零代码应用平台能干什么?
  • 多工位扫码组网优化方案:XT6202-2 系列多收发器无线扫码枪数据分发技术研究
  • 【JAVA毕设源码分享】基于springboot公园综合服务系统设计与实现小程序的设计与实现(程序+文档+代码讲解+一条龙定制)
  • 3分钟视频转PPT:智能识别,告别手动截图的繁琐
  • 手机变身万能键盘鼠标:无需安装软件的跨设备输入方案

日新闻

  • Python Playwright录制功能:从零到一构建自动化测试脚本
  • 如何用开源工具永久保存你心爱的小说:novel-downloader全攻略
  • In-Context Learning不是教知识,而是模式对齐:从5个示例到100个工业级样本的真相

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号