尝试使用 exec 运行 grep 命令
Trying to run grep comman using exec
我正在尝试在 fork 系统调用后 运行 我的子进程中的 grep 命令。它显示错误:grep: .: No such file or directory。我的执行代码如下:
execl("/bin/grep","grep","a","*.*",NULL);
如果我替换 * 。 * 使用文件名可以正常工作。我的错误是什么?
*.*
的论点按字面意思传递给 grep
。它不被 shell 解释 - 所以 grep
试图打开一个名为 *.*
的文件(但失败了)。
如果您想在程序中执行 shell 类似 globbing 的操作,您可以查看 glob
函数:
#include <glob.h>
int glob(const char *pattern, int flags,
int (*errfunc) (const char *epath, int eerrno),
glob_t *pglob);
void globfree(glob_t *pglob);
我正在尝试在 fork 系统调用后 运行 我的子进程中的 grep 命令。它显示错误:grep: .: No such file or directory。我的执行代码如下:
execl("/bin/grep","grep","a","*.*",NULL);
如果我替换 * 。 * 使用文件名可以正常工作。我的错误是什么?
*.*
的论点按字面意思传递给 grep
。它不被 shell 解释 - 所以 grep
试图打开一个名为 *.*
的文件(但失败了)。
如果您想在程序中执行 shell 类似 globbing 的操作,您可以查看 glob
函数:
#include <glob.h>
int glob(const char *pattern, int flags,
int (*errfunc) (const char *epath, int eerrno),
glob_t *pglob);
void globfree(glob_t *pglob);