在函数main中:对exec的未定义引用

-3 c gcc exec

我遇到了这个页面,我制作了这个文件

#include <unistd.h> 
int main(void) {
  exec("ls");
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

然而,编译它给了我这个消息

$ cc foo.c
undefined reference to `exec'
Run Code Online (Sandbox Code Playgroud)

这个页面是假的吗?过时了?这里发生了什么?

Ed *_*eal 5

您需要使用"exec"函数系列之一.即之一:

int execl(const char *path, const char *arg, ...);
int execlp(const char *file, const char *arg, ...);
int execle(const char *path, const char *arg,..., char * const envp[]);
int execv(const char *path, char *const argv[]);
int execvp(const char *file, char *const argv[]);
int execvpe(const char *file, char *const argv[],
Run Code Online (Sandbox Code Playgroud)

手册页exec将告诉您它们的用法.也许

execl("/bin/sh", "-c", "ls");
Run Code Online (Sandbox Code Playgroud)

或者写ls使用opendir,readdirclosedir