0

这已经是树桩了。我用 C 语言编写了一个 shell 程序,允许用户执行多个命令。根据我目前的研究,“ls”和“cat”等所有命令都位于“/bin/”中。

“wc”未列在此目录 - “/bin”中。如果我启动一个终端,我可以输入“wc fileName”并且它可以工作。我从“/”目录运行“find .wc”,但仍然找不到“wc”命令。

有谁知道“wc”藏在哪里?

4

4 回答 4

6

尝试which wc在你的 shell 中输入......这应该会告诉你它在哪里。

在我的机器上,它位于/bin/.

但是,如果您只想自己完成路径解析,则可以使用该system()功能(man 3 system有关更多信息,请参阅 )。正如您在文档中所读到的,这与为路径解析调用 Bourne shell(或符号链接指向的任何地方)实际上是相同的,所以如果您不想要这种开销,您将要坚持使用任何方法您当前正在使用。

于 2010-10-12T00:20:41.347 回答
1

我试过whereis wc了,我把它放进去/usr/bin/wc

于 2010-10-12T00:22:10.240 回答
0

如果您不想担心各个实用程序在哪里,但确实想避免调用所涉及的开销system,那么您应该尝试中间级函数execvp,或者它的朋友之一(也在该页面上列出)。可悲的是,没有execvpe.

于 2010-10-12T00:43:35.983 回答
0

您可以尝试whence, which, 或whereis在您的 exec 路径中查找任何程序,具体取决于您使用的 shell。

诸如此类的实用程序wc通常位于/bin或或/usr/bin之类的地方。/usr/local/bin/usr/site/bin

于 2010-10-12T01:11:55.190 回答