我遇到了这个页面,我制作了这个文件
#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)
这个页面是假的吗?过时了?这里发生了什么?
您需要使用"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,readdir和closedir