Linux下confstr与uname函数_获取C库与内核信息

#include

#include  //uname

int main(int argc, char **argv[])

{

struct utsname  u;

if (uname(&u) != -1) {

printf("获取当前内核的名称和信息如下\n"

"sysname:%s\n"

"nodename:%s\n"

"release:%s\n"

"version:%s\n"

"machine:%s\n"

, u.sysname, u.nodename, u.release, u.version, u.machine);

}

return 0;

}

输出如下:‘

获取当前内核的名称和信息如下

sysname:Linux

nodename:fes

release:2.6.32-220.el6.x86_64

version:#1 SMP Wed Nov 9 08:03:13 EST 2011

machine:x86_64

size_t confstr(int name, char *buf, size_t len);

confstr函数获取依赖配置的字符串变量的值

1、_CS_GNU_LIBC_VERSION,the GNU C library version on this system

2、_CS_GNU_LIBPTHREAD_VERSION,the POSIX implementation supplied by this C library

3、_CS_PATH,A value for the PATH variable which indicates where all the POSIX.2 standard utilities can be found.

#include

#include

#include   //confstr

int main(int argc, char **argv[])

{

char *pathbuf, *gun_libpthread_version_buf, *gun_libc_version_buf;

size_t n;

n = confstr(_CS_PATH,NULL,(size_t) 0);

pathbuf = malloc(n);

if (pathbuf == NULL)

abort();

confstr(_CS_PATH, pathbuf, n);

printf("_CS_PATH, A value for the PATH variable:%s\n", pathbuf);

free(pathbuf);

pathbuf = NULL;

n = confstr(_CS_GNU_LIBPTHREAD_VERSION,NULL,(size_t) 0);

if (n > 0) {

gun_libpthread_version_buf = malloc(n);

}

if (gun_libpthread_version_buf == NULL)

abort();

confstr(_CS_GNU_LIBPTHREAD_VERSION, gun_libpthread_version_buf, n);

printf("_CS_GNU_LIBPTHREAD_VERSION, the POSIX implementation supplied by this C library:%s\n", gun_libpthread_version_buf);

free(gun_libpthread_version_buf);

gun_libpthread_version_buf = NULL;

n = confstr(_CS_GNU_LIBC_VERSION,NULL,(size_t) 0);

if (n > 0) {

gun_libc_version_buf = malloc(n);

}

if (gun_libc_version_buf == NULL)

abort();

confstr(_CS_GNU_LIBC_VERSION, gun_libc_version_buf, n);

printf("_CS_GNU_LIBC_VERSION, the GNU C library version on this system: %s\n" \

, gun_libc_version_buf);

free(gun_libc_version_buf);

gun_libc_version_buf = NULL;

return 0;

}

输出结果如下:

_CS_PATH, A value for the PATH variable:/bin:/usr/bin

_CS_GNU_LIBPTHREAD_VERSION, the POSIX implementation supplied by this C library:NPTL 2.12

_CS_GNU_LIBC_VERSION, the GNU C library version on this system: glibc 2.12

linux uname内核,Linux下confstr与uname函数_获取C库与内核信息相关推荐

  1. linux下confstr与uname函数_获取C库与内核信息

    #include <stdio.h> #include <sys/utsname.h> //unameint main(int argc, char **argv[]) {st ...

  2. python中__init__下划线怎么打出来___init__()-------“_”下划线开头的函数

    1.linux kernel中双下划线开头的函数 常常, 当你查看内核 API 时, 你会遇到以双下划线(__)开始的函数名. 这样标志的函数名通常是一个低层的接口组件, 应当小心使用. 本质上讲, ...

  3. uname命令 linux,Linux系统调用--uname()函数及系统下的uname命令

    [uname系统调用] 功能描述: 获取当前内核名称和其它信息. 用法: #include /* Put information about the system in NAME.  */ exter ...

  4. uname命令 linux,Linux系统下使用uname命令显示系统和硬件信息

    用法:uname [选项]... 输出一组系统信息.如果不跟随选项,则视为只附加-s 选项. -a, --all                     以如下次序输出所有信息.其中若-p 和 -i ...

  5. linux 返回非法指令,linux – ARM Cortex A7在内核模式下返回PMCCNTR = 0,在用户模式下返回非法指令(即使在PMUSERENR = 1之后)...

    我想在Raspberry Pi 2上读取循环计数寄存器(PMCCNTR),它有一个ARM Cortex A7内核.我为它编译了一个内核模块,如下所示: #include #include int in ...

  6. 华为服务器通过mgmt口挂载光盘装系统及Linux系统rescue模式下修复内核

    Linux系统rescue模式下修复内核和grub 故障现象 处理思路,内核报错,因此重新安装内核,通过光盘启动,进入救援模式. 1.进入救援模式 (1)华为服务器没有光驱,通过mgmt管理口登录,挂 ...

  7. IDR221F-H身份证阅读器模块基于国产UOS 系统(Linux内核)下的调用操作说明

    IDR221F-H身份证阅读器模块除支持Win系列操作系统,也支持国产操作系统,如通信UOS.银河麒麟Kylin.中标麒麟.Ubuntu.鸿蒙等操作系统,在基于UOS 系统(Linux内核)下的应用, ...

  8. 嵌入式Linux开发,Ubuntu22下交叉编译内核报错: multiple definition of `yylloc‘; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0

    一.问题描述 嵌入式Linux开发,Ubuntu22下交叉编译内核报错: /usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x10): multiple ...

  9. Linux ps、top、free、uname命令

    Linux ps.top.free.uname命令 Linux有很多查看系统运行时状态的命令,例如查看进程信息的ps和top,以及查看内存信息的free命令和操作系统信息的uname命令等. ps 全 ...

最新文章

  1. Javascrapy的window onload()函数用法
  2. python判断CSV文件是否空
  3. jquery easyui的应用-2
  4. python处理excel表格数据-利用Python处理和分析Excel表中数据实战.doc
  5. tensorflow2.X安装及使用
  6. 【转载】linux 下 cpu使用情况分析
  7. 2018 Multi-University Training Contest 7 - Sequence
  8. 一级学科和二级学科_在多学科团队中工作的6个障碍(以及如何解决这些问题)
  9. Mac OS使用技巧之十四:自定义文件图标
  10. 园林系统优秀党员推荐材料_园林绿化公司党员先进个人事迹材料
  11. sql 按照天环比_SQL 求同比 环比
  12. 用计算机写试卷反思,计算机试卷
  13. Redis集群搭建与简单使用
  14. Apache Hadoop YARN
  15. 原生Android开发自学过程(二)之TextView基础属性
  16. 解决 Sketch 在MAC M1上运行卡顿等问题!
  17. 无线传感器网络中低功耗MAC协议—T-MAC
  18. w10怎么修改dns服务器,Win10怎么修改DNS 如何把DNS设置为百度公共DNS
  19. 用java编写矩阵运算_基本矩阵运算的Java实现
  20. 6.再来一题除法算术题

热门文章

  1. 使用Spring 框架能带来哪些好处?
  2. 消息发送到消息接收的整体流程
  3. Redis 分布式方案Redis Cluster
  4. Redis中缓存Lua 脚本
  5. hystrix之熔断
  6. jwt:介绍以及创建token
  7. jvm_虚拟机组成部分概述
  8. java jks 转pfx_JKS和PFX文件相互转换方法
  9. android开发版本,Android开发之版本统一规范
  10. Spring Security源码解析(四)—— 过滤器