在嵌入板上使用shttpd作为服务端,接受客户端http上传文件时发现内存会越来越大;
解决:
1.调试跟下,接收的buff大小不变,因此不是接收空间的问题;
2.发现基本上接收到二十多M就会被系统检查到超出了内存,因此被杀掉;
解决:
原因是写文件时,只是调用write接口,但是板上判断大小这块有点问题,不会自动把缓存写入到外部文件去,因此只需要在接收到一定大小的缓存内容时,及时使用fsync把
当前文件的缓存写入到物理文件中。
在使用shttpd作为服务端接收HTTP上传文件时遇到内存不断增长直至超出限制的问题。通过调试发现,当文件写入缓存达到一定大小时,系统未能自动将缓存内容同步到物理文件中。解决方案是在适当的时候手动调用fsync接口。
在嵌入板上使用shttpd作为服务端,接受客户端http上传文件时发现内存会越来越大;
解决:
1.调试跟下,接收的buff大小不变,因此不是接收空间的问题;
2.发现基本上接收到二十多M就会被系统检查到超出了内存,因此被杀掉;
解决:
原因是写文件时,只是调用write接口,但是板上判断大小这块有点问题,不会自动把缓存写入到外部文件去,因此只需要在接收到一定大小的缓存内容时,及时使用fsync把
当前文件的缓存写入到物理文件中。
1329
1000

被折叠的 条评论
为什么被折叠?
