回 帖 发 新 帖 刷新版面

主题:linux system 系统调用的问题

各位大侠:
    小弟现在遇到一个问题,想请大家帮个忙。
在主程序中,要调用system这个函数来执行udhcpc命令,但是总是调用不成功,
perror打印显示是申请内存失败。在用execl函数是,先进行fork操作,但是fork失败。
我先在system调用的时候,也是因为fork失败造成system失败。
我的内存有线,只有64M,并且主函数要32M的空间,所以在fork的时候会失败我想。
各位有没有一个好的办法,能在C函数中实现对二进制可执行文件的调用,谢谢!



根据二楼说的。我现在的情况是这样的。在主函数中会调用第三方提供的接口函数,这些借口函数会申请用malloc函数申请内存,但是最大不超过32M(我是64M内存),在板子起来后,通过遥控器对网络进行操作,当选择DHCP方式的时候,调用我自己实现的dhcp_open函数,这个函数中调用system("udhcpc")这个函数来直接调用busybox离得udhcpc这个命令来实现dhcp操作,但是调用system这个函数失败,用perror打印时申请不到内存。但是如果我另外写一个main函数,在这个main函数里直接调用ststem("udhcpc")这个接口,是可以调用成功的。所以很是迷惑。不知道那位能帮到我。谢谢

回复列表 (共2个回复)

沙发

你现在的主要问题是内存调度。最好完整叙述一下你的需求和你的实现思路,让大家帮你分析看看是你的需求难以实现还是你的实现思路需要优化

板凳


你好 请问你这个问题是如何解决的?我现在遇到相同的问题了,谢谢

我来回复

您尚未登录,请登录后再回复。点此登录或注册