- 主题:/proc/self/status的内容是实时更新的吗?
比如我malloc了一块内存,立刻读/proc/self/status中的VmSize这一行,就能看到变化吗?
问这个的原因是:
我做了类似的操作(分配一块内存),然后把/proc/self/status的内容全部输出,就能够看到VmSize确实变了。但是如果搜索/proc/self/status里面的VmSize这一行并输出,那么就不变...
--
FROM 14.26.160.*
谢谢楼上的各位。
我分配的是1G的内存。
关键是:我把/proc/self/status的内容全部输出(逐行get,然后每行都fprintf到stderr),就能够看到VmSize确实变了。但如果是逐行get,发现是VmSize:... 才输出,其它跳过,这种方式就不会变。
【 在 vonNeumann 的大作中提到: 】
: /proc 下的东西是实时的,但是如果只是调用了一次 malloc,那不一定 VmSize 会变化,不是每次 malloc 都会进内核
:
--
FROM 14.216.132.*
这个没有。两种测试下,我都是fseek到刚开始的。
我先试一下关闭了再打开吧。
【 在 StephenLee 的大作中提到: 】
: 确认每次读之前都关闭了文件重新打开么?
--
FROM 183.42.226.*
现在我加了fflush,没问题了。
多谢诸位!
【 在 il15 的大作中提到: 】
: 这个没有。两种测试下,我都是fseek到刚开始的。
: 我先试一下关闭了再打开吧。
:
--
FROM 183.42.226.*
我 fseek 到 /proc/self/status 的开始,然后fflush 了一下。
【 在 JulyClyde 的大作中提到: 】
: 没明白。你把fflush加在哪里了?
--
FROM 119.143.221.*
man fflush 一下,有下面这个说法:
For input streams associated with seekable files (e.g., disk files, but not pipes or terminals), fflush() discards any buffered data that has been fetched from the underlying file, but has not been consumed by the application.
但也还是不理解“has not been consumed by the application”这句。
【 在 kirbyzhou 的大作中提到: 】
: fflush ??
: 你不是只读的打开的么?
:
--
FROM 119.143.221.*