我的操作系统是64位的Arch Linux。
free -m命令的结果如下:
总内存 已用内存 空闲内存 共享内存 缓冲区 缓存 内存: 32172 31909 262 0 119 13054 -/+ 缓冲区/缓存: 18735 13436 交换分区: 258 258 0
ulimit -a 核心文件大小 (块, -c) 无限制 数据段大小 (KB, -d) 无限制 进程调度优先级 (-e) 20 文件大小 (块, -f) 无限制 挂起信号 (-i) 257329 最大锁定内存 (KB, -l) 64 最大内存大小 (KB, -m) 无限制 打开文件数 (-n) 1024 管道大小 (512 字节, -p) 8 POSIX 消息队列 (字节, -q) 819200 实时优先级 (-r) 0 堆栈大小 (KB, -s) 8192 CPU 时间 (秒, -t) 无限制 最大用户进程数 (-u) 257329 虚拟内存 (KB, -v) 无限制 文件锁 (-x) 无限制
内核选项overcommit_memory的值为0。
但是,当我尝试使用malloc分配2G字节时,失败了,原因是:无法分配内存?