如何创建命令行管道?(xcode mac os x).



如何创建命令行管道?(Xcode Mac OS X)你好,我想 使用 Xcode (Mac OS X) 创建一个命令行,其质量为 在"|"之后的管道中使用。

我知道通过使用 xargs,我们可以将存储在 stdin 中的参数传递给 参数。

我想了解如何创建一个可pipable命令行。谢谢 你的答案

例如,如果我们定义应该接收 要执行的参数。我们将以基本的方式编写(用 C 语言):

int main (int argc, char ** argv) 
{
char buf [512] = ""; 
char buf1[512] = "";
int f;

并实现一些事情

参数数组的第一个参数,在任何情况下都包含 no 您正在创建的命令行,例如:argv [0] "echo" 和 您希望使用的参数之后的参数,'这里用于回声 Argv [1] "阳光普照"当然,如果 Echo 能够收到争论 在"|"之后(管道)例如:回声"阳光明媚" |回声,但是 回声 不要使用管道。

对于我们的主要函数,我们基本上将检查 argv [1] 包含参数

if (argv [1] == NULL)
>     {
there we arbitrarily take the guess that argv [1] is empty. as a reminder our command line is located after a pipe "|" if our argv [1]

为空,它需要找到一个参数才能继续使用我们的 命令行,为此我们接受假设,如果命令 行放在"|"管道后面就是前面的输出 命令不为空,从后面的内容

>  f = open ("/ dev / stdin", O_RDONLY);
>  read (f, buf, sizeof (buf)); 
memcpy (buf1, buf, sizeof (buf));

现在我们已经打开了流"stdin",它必然包含 上一个命令的输出,我们使用 2 个缓冲区 buf [512] 和 buf1 [512],因为我们无法填充 argv [1],现在我们有我们的 缓冲区中的参数,可以实现 命令的执行,就好像它是关于 argv [1] 一样。

在 objective-c 或 C 中,简单地说,给行命令以美德 由于使用"|"而使用 ien 管道 命令行,有必要将"stdin"重定向到条目 命令行,因为它是一个参数("argv")。从那里通过 掌握了"C"中的一点编程,必须达到它的终点 使用 xcode 创建一个命令行创建,可在 "|" 之后使用。

最新更新