我正在尝试执行一个运行“ls”命令的非常简单的程序 我在Mac OS 10.7下工作,使用XCode和C ++ 这是代码:
#include <iostream>
using namespace std;
int main(void)
{
cout << "Hello world" << endl;
execl("/bin/ls","ls",NULL);
return 0;
}
在输出
后崩溃Hello world
现在没有可用于程序的内存:调用malloc不安全
我试着谷歌但没有运气,对我可能做错的任何想法?
答案 0 :(得分:2)
这只是“我的意见”
从手册页:
exec系列函数用a替换当前过程映像 新的过程形象。
可能是它试图替换调试器进程并因此崩溃(应用程序从Xcode运行..)。如果从命令行执行应用程序,它可以正常工作......
答案 1 :(得分:0)
答案 2 :(得分:0)
我知道这可能不是您想要做的,但以下SO问题是使用execv
来执行echo
: