我正在使用raspistill
我的 PI 获取图像。几周后,我的 SD 卡已满,整个东西都死了,所以我需要重新安装。所以我添加了一些代码来查看我的可用内存发生了什么。这是评估我的记忆状态的代码。
//https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.2.0/com.ibm.zos.v2r2.bpxbd00/rstatv.htm
int r = statvfs(".", &buf);
if (r < 0) {
printf(" Error in statsvf");
memAvailable = 4; // exit
}
else {
memAvailable = (unsigned long)(buf.f_bavail * buf.f_bsize);
printf(" Memory available is %.0lu\n", memAvailable);
}
这是我得到的结果:
- 拍照状态2
- 可用内存为6868992
- 转:325 工作 = 1 向上 = 1
- 将图像保存在 Pix/005/img014_2020-07-02_10-23-37.jpg
- 图片保存拍照状态2
- 可用内存为2777088
- 转:352 工作 = 1 向上 = 1
- 将图像保存在 Pix/005/img015_2020-07-02_10-23-46.jpg
- 图片保存拍照状态2
- 可用内存为4293648384
- 转:379 工作 = 1 向上 = 1
- 将图像保存在 Pix/005/img016_2020-07-02_10-23-55.jpg
- 图片保存拍照状态2
- 可用内存为4289556480
- 转:406工作= 1向上= 1
为什么在运行过程中可用内存会发生变化 - 我在运行期间没有启动或停止任何程序,也没有分配大容量内存。
编辑:我的错 - 似乎 32GB 对于 unsigned long 来说太长了。所以我只需要为我的任务评估 f_bavail。小白