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