【问题标题】:C - UNIX commands in programC - 程序中的 UNIX 命令
【发布时间】:2016-01-27 03:10:03
【问题描述】:

我正在尝试创建一个程序来计算目录数量或可读/可写/可执行文件的数量。用户将只输入作者的姓名和字母“d”、“r”、“w”或“x”。我试图在我的程序中直接调用“ls -l”,但这导致了错误。如何在 C 程序中调用 UNIX 命令?

【问题讨论】:

  • 查看system()
  • 虽然system() 'works',你必须小心地制造命令行;启动程序无法过滤输出(在正常的事件过程中)。您可能需要使用 POSIX 函数 popen(),或者可能需要使用 fork()execvp() 以及相关函数(pipe()dup2(),...)。
  • 您可能还想研究 POSIX 函数 nftw()opendir()readdir()stat()

标签: c unix


【解决方案1】:

我尝试在我的程序中直接调用“ls -l”,但这导致了错误。如何在 C 程序中调用 UNIX 命令?

你可以在你的C程序中设置system,例如:

system( "ls -l" );

为此,您还需要#include <stdlib.h>

【讨论】:

  • 我认为这种情况下程序输出也是必要的。
  • 在这种情况下使用popen
【解决方案2】:

使用 find 命令可能效果更好,您可以使用命令“find . -t d | wc -l”对目录进行计数,并对具有适当标志的文件执行类似操作。

【讨论】:

    猜你喜欢
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    相关资源
    最近更新 更多