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

时间:2014-08-16 11:16:09

标签: c gcc exec

我遇到了this page, 我做了这个文件

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

然而,编译它会给我这条消息

$ cc foo.c
undefined reference to `exec'
该页面只是虚假的吗?过时了?这是怎么回事?

4 个答案:

答案 0 :(得分:5)

您需要使用其中一个&#34; exec&#34;功能。即:

之一
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[],

手册页exec会告诉您它们的用法。也许

execl("/bin/sh", "-c", "ls");

或者使用lsopendirreaddir

撰写closedir

答案 1 :(得分:3)

您在寻找system()吗?

#include <stdlib.h> 

int main(void)
{
  system("ls");
  return 0;
}

答案 2 :(得分:3)

该页面并非虚假。但是,根据link provided引用的代码实际上是Java,因为该站点引用了ImageJ程序,一个&#34;图像处理和分析&#34;应用。请参阅here

答案 3 :(得分:2)

您遇到的页面是Java种语言,而不是C。如果要编译它,请使用Java编译器。如果您想在C中使用类似功能,请使用其他答案中的建议之一。