linux 系统调用sysconf【总结】
2016-07-08 09:31
447 查看
当前计算机都是多核的,linux2.6提供了进程绑定cpu功能,将进程指定到某个core上执行,方便管理进程。linux提供了sysconf系统调用可以获取系统的cpu个数和可用的cpu个数。
2、sysconf 函数
man一下sysconf,解释这个函数用来获取系统执行的配置信息。例如页大小、最大页数、cpu个数、打开句柄的最大个数等等。详细说明可以参考man。
3、测试程序
写一个测试程序,方便日后使用。
#include <stdio.h> #include <unistd.h> #define ONE_MB (1024 * 1024) int main() { printf("The number of processors configured is :%ld\n", sysconf(_SC_NPROCESSORS_CONF)); printf("The number of processors currently online (available) is :%ld\n", sysconf(_SC_NPROCESSORS_ONLN)); printf ("The pagesize: %ld\n", sysconf(_SC_PAGESIZE)); printf ("The number of pages: %ld\n", sysconf(_SC_PHYS_PAGES)); printf ("The number of available pages: %ld\n", sysconf(_SC_AVPHYS_PAGES)); printf ("The memory size: %lld MB\n", (long long)sysconf(_SC_PAGESIZE) * (long long)sysconf(_SC_PHYS_PAGES) / ONE_MB ); printf ("The number of files max opened:: %ld\n", sysconf(_SC_OPEN_MAX)); printf("The number of ticks per second: %ld\n", sysconf(_SC_CLK_TCK)); printf ("The max length of host name: %ld\n", sysconf(_SC_HOST_NAME_MAX)); printf ("The max length of login name: %ld\n", sysconf(_SC_LOGIN_NAME_MAX)); return 0; }
我的虚拟机配置了4个核,1G的内存,32位的linux。执行结果如下:
![](http://images.cnitblog.com/i/305504/201405/251720487772977.png)
相关文章推荐
- CentOS 部署 Java Web
- Linux上使用Qt Creator进行C/C++开发
- linux守护进程
- Linux系统设置及基本操作
- Linux中brk()系统调用,sbrk(),mmap(),malloc(),calloc()的异同
- 嵌入式 Linux进程间通信(八)——共享内存
- Linux系统设置 history 相关系统变量(包括显示时间、history条数)
- 每天一个linux命令(38)--lsof命令
- linux 基础命令
- 工程部署到linux
- CentOS上安装Git服务器
- Linux下crontab命令的用法
- LINUX SCSI回调IO的分析
- linux vlan configuration
- window、ubuntu与arm板文件挂载
- 芯片启动过程 ARM C51 Soc - RTOS LINUX - 之一
- linux基础教程(8):常见命令
- 关于 Linux 系统(centos)完美搭建 svn 版本管理系统的教程
- Linux使用netstat命令查看并发连接数
- Linux运维必会(二) - 遍历文件夹,并筛选符合条件的文件名