我正在使用execlp运行wc命令,并使用文件作为额外参数来读取字数。此Unix命令:
wc -l HelloWorld.class
给出的输出为:7 HelloWorld.class
但是在我使用execlp的C ++代码中,以下代码行:
int rc2 = execlp("/bin/wc", "wc", "-l", "HelloWorld.class", (char *) 0);
似乎不起作用(空白)。
我只运行那一行代码,并且从中得到空白输出。C ++文件的目录与执行unix命令的目录相同。
尽管它与您的特定问题无关,但对.class
文件中的行数计数没有多大意义。您可能想在.java
文件或其他文本文件上执行此操作。
对于您的特定问题,您应该首先检查/bin/wc
该可执行文件的正确路径。在我的系统(Debian)上,它是/usr/bin/wc
。
由于execlp
无论如何都会重复路径搜索功能(如果它不包含/
字符),则您可能只需要使用:
int rc2 = execlp ("wc", "wc", "-l", "HelloWorld.class", (char *) 0);
如果要检查路径,请使用which wc
外壳程序中的类似内容,它应该让您知道实际的可执行文件在哪里。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句