, execve函数无法编译

求助, execve函数无法编译
1. 
char** envrion;
char strProcess[]="";
execve("new", &strProcess, environ); //无法编译


2.  如何查找一个带有hello 的文件。

某个目录下,我ls了一下,然后grep "hello",结果半天没反应,只要ctr+c停止shell 执行。

该怎么办,

hello可能大小写,而且也可能叫1hello2,这种形式。

该怎么办呐、


------解决方案--------------------
引用:
Quote: 引用:

1. 应该是extern char **envrion;不加extern,envirion是一个局部变量,指针的值是脏的;
2. exec系列函数,无论是vector(execv×)还是list(execl×),参数表(argv)都要求至少包含一个字符指针,且以空指针结束——(char *)NULL。习惯上,参数表的第一个参数就是exec函数的第一个参数;
3. 很多Linux系统的实现会忽视参数表的第一个参数,但并不是每个类Unix系统都这样;
4. 关于搜索文件名,我只知道一个命令——find,eg: find ./ -name hello。更多信息参阅man find。



全局变量? 

什么意思? 

为什么是脏的?

变量不要定义吗

全局变量,只申明,你不觉得奇怪吗?

所以我改成局部变量。


因为char **environ在头文件中以全局变量的形式声明且定义了。不加extern,相当于在内部作用域中屏蔽了外部作用域的environ,成为一个新定义的变量。而局部变量不初始化,其值是不确定的。
如果这样说还不明白,你应该去看C的语法书了。