尝试使用execle时出现预期的参数声明符错误

问题描述 投票:0回答:1

所以我是一个新学习者,我似乎无法弄清楚为什么我在尝试编译这段代码时会遇到以下错误。作为参考,我正在学习“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);
c execl
1个回答
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);
}

我没有得到编译错误。

如果代码确实在函数内部,那么在这些行之前会有一些语法错误。

© www.soinside.com 2019 - 2024. All rights reserved.