【问题标题】:Run Unix Commands to DOS equivalent in C Language用 C 语言将 Unix 命令运行到 DOS 等效项
【发布时间】:2015-03-27 09:45:38
【问题描述】:

Operating System 概念中,我想编写一个C program 以使Unix 命令与DOS 命令一样工作。 这意味着当我按下像ls 这样的Unix 命令时 - 它用于Display list of Files - 它的工作方式类似于DOS 中的Dir 命令。你能帮我解决这个问题吗?

【问题讨论】:

  • 大多数 shell 都内置了 ls 命令,它通常包含许多选项来控制其输出。所以你应该做的是创建一个 shell 别名来为你想要的格式添加你想要的选项。
  • ls -l | awk '{printf "%s %s %s %20d %s\n", $6, $7, $8, $5, $9}'
  • 您可以学习win-bash - "A stand-alone bash for Windows"Cygwin - "Get that Linux feeling - on Windows"项目的源代码。他们做你想做的事,但比“练习并编写一个c程序来做到这一点”更完整、更复杂。研究类似/竞争对手的源代码是了解如何实现的好方法

标签: c operating-system command


【解决方案1】:

以 ls 命令为例,从用户那里获取命令的输入。如果命令是 ls 调用一个 windows 函数,它将显示当前工作目录的内容()。对于 ls,

  1. 您需要首先获取当前工作目录。 Windows 的 GetCurrentDir() 将是您的第一步。这将有助于How do I get the directory that a program is running from?
  2. 然后您可以像https://msdn.microsoft.com/en-us/library/windows/desktop/aa365200(v=vs.85).aspx 这样列出目录中的文件。但您确实需要第一步的输出。

其他命令也可以这样实现

【讨论】:

  • 你确定OP要在windows下创建程序吗?
  • alk,我只是想练习并编写一个c程序来做到这一点,如果可以的话!!!。我很乐意帮助我解决这个问题。谢谢
  • 看标题,Run unix commands to DOS。那么它必须在windows中
  • 抱歉,是的,它在 Windows 中 :(
猜你喜欢
  • 1970-01-01
  • 2016-02-03
  • 1970-01-01
  • 2018-11-16
  • 2011-03-26
  • 2018-09-05
  • 2010-09-16
  • 1970-01-01
相关资源
最近更新 更多