所以我是一个新学习者,我似乎无法弄清楚为什么我在尝试编译此代码时会遇到以下错误。作为参考,我是在第一个C" Head First C"这是他们在第9章早期给出的一个例子。尽管我已经完全复制了它,但它仍然无法工作,我对其原因感到困惑。在我看来,我喜欢给它所需的参数,所以我无法弄清楚它还有什么要求。
代码:
#include <stdio.h>
#include <stdlib.h>
char *my_env[] = {"JUICE=peach and apple", NULL};
execle("dinerinfo", "dinerinfo", "4", NULL, my_env);
错误:
cc my_env.c -o my_env
my_env.c:5:8: error: expected parameter declarator
execle("dinerinfo", "dinerinfo", "4", NULL, my_env);
^
my_env.c:5:8: error: expected ')'
my_env.c:5:7: note: to match this '('
execle("dinerinfo", "dinerinfo", "4", NULL, my_env);
答案 0 :(得分:1)
首先,如果您想使用unistd.h
,则必须添加execle
。
你必须把代码放在一个函数中!
#include <stdio.h>
#include <unistd.h>
int main(void)
{
char *my_env[] = {"JUICE=peach and apple", NULL};
execle("dinerinfo", "dinerinfo", "4", NULL, my_env);
}
我没有收到编译错误。
如果代码确实在函数内部,那么你会遇到一些语法错误 在这些行之前。