0

如何使用 execl 或 execve 仅在 C 中显示扩展名为“.txt”的文件?

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>

int main(int argc, char **argv) {

 ( execl("/bin/ls","*.txt",NULL); 

  return 0;
}
4

1 回答 1

1

您正在寻找glob(3)

#include <glob.h>

extern char **environ;

int main(int argc, char *argv[]) {
    glob_t g={0};

    g.gl_offs = 1; /* reserve slot for "/bin/ls" */
    glob("*.txt",GLOB_DOOFFS,0,&g);
    g.gl_pathv[0] = "/bin/ls";
    execve(*g.gl_pathv,g.gl_pathv,environ);

}
于 2012-10-07T08:23:40.427 回答