【问题标题】:List a target directory in C列出 C 中的目标目录
【发布时间】:2013-03-27 19:27:35
【问题描述】:

所以我的任务是创建一个 shell。我的功能正常工作(例如 dir、clear、quit 等),但我对“dir”功能有疑问。目前'dir'工作正常。它列出了程序所在目录的文件。我要做的是列出另一个位置的目录。有办法吗?

我还没有创建更改目录命令。我想知道我的问题是否会通过它来解决。任何帮助表示赞赏。

旁注:说明中指出我“需要提供一些命令行解析功能来提取目标目录以供列出。”我不知道那是什么,但也许有人可以启发我。

【问题讨论】:

  • DIR *d = opendir("/any/path/you/want");
  • 不错。我喜欢你列出的方式。谢谢。
  • 这并不是 shell 的真正工作方式,shell 所做的只是从启动的进程中输出标准输出和标准错误。唯一的“命令”是 cd ,它更改工作目录以在其中启动程序。每个其他“命令”实际上只是一个程序,通常添加到 PATH 中,因此可以从任何地方调用它。你当然可以通过输入文件名来启动程序,然后输入任何参数。
  • 实际清除和退出也将是程序以外的实际命令的示例。不过,Dir 只是一个程序。

标签: c shell


【解决方案1】:

看看 GNU 的 Simple Directory Lister 示例代码,它使用了 opendir()

要解析命令行参数,请查看您的 main() 函数:

int main(int argc, char* argv[])
{
    ...
    return 0;
}

使用argv[] 指针和argc 整数值来确定参数的个数和字符指针。

【讨论】:

  • 哦,好的。我想知道我是否必须使用参数。谢谢。
猜你喜欢
  • 2015-08-15
  • 2020-01-29
  • 2013-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-31
  • 2012-12-09
  • 2013-12-25
相关资源
最近更新 更多