我遇到了this page, 我做了这个文件
#include <unistd.h>
int main(void) {
exec("ls");
return 0;
}
然而,编译它会给我这条消息
$ cc foo.c
undefined reference to `exec'
该页面只是虚假的吗?过时了?这是怎么回事?
答案 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");
或者使用ls
,opendir
和readdir
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中使用类似功能,请使用其他答案中的建议之一。