主题: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")这个接口,是可以调用成功的。所以很是迷惑。不知道那位能帮到我。谢谢
小弟现在遇到一个问题,想请大家帮个忙。
在主程序中,要调用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")这个接口,是可以调用成功的。所以很是迷惑。不知道那位能帮到我。谢谢