java通过runtime.exec调用C程序产生buffer overflow detected

姚贤贤 2017-08-29 08:20:08
RT,很奇怪。
我使用java的Runtime.exec去调用一个C程序C1,该C1又去调用另外一个C程序C2,这会导致C2产生错误(运行了一段时间以后)
*** buffer overflow detected *** buffer overflow detected xxxx terminated
如果不通过java去调用的话,只通过C1去调用C2,这不会产生任何问题;如果直接命令启动C2也不会产生任何问题。
请问一下这是啥原因,有人看出点门路吗?
...全文
268 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
X元素 2017-08-30
  • 打赏
  • 举报
回复
记得不是很清楚了,之前在哪本书里看过,Runtime成本非常的高,应该是获取了一次整个jvm的环境。 楼主如果一定要使用exec的方式,不如尝试一下,把获取Runtime 写成个单例,jvm启动的时候加载一次,这样试试是否可行/
姚贤贤 2017-08-30
  • 打赏
  • 举报
回复
引用 1 楼 u011619071 的回复:
记得不是很清楚了,之前在哪本书里看过,Runtime成本非常的高,应该是获取了一次整个jvm的环境。 楼主如果一定要使用exec的方式,不如尝试一下,把获取Runtime 写成个单例,jvm启动的时候加载一次,这样试试是否可行/
我也没有多线程,也没有启动多个程序,就简单的一个启动exec

50,545

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧