Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何创建命令行管道?(xcode mac os x)_Xcode_Macos_Terminal - Fatal编程技术网

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

如何创建命令行管道?(xcode mac os x),xcode,macos,terminal,Xcode,Macos,Terminal,如何创建命令行管道?(xcode mac os x)你好,我想 使用xcode(mac os x)创建一个具有 在“|”之后的管道中使用 我知道通过使用xargs,我们可以将存储在stdin中的参数传递到 争论 我想了解如何创建一个pipable命令行。感谢 谢谢你的回答 在objective-c或c中,简单地说,给一个命令行赋予 由于在管道中使用了一个接一个的“|” 命令行中,有必要将“stdin”重定向到 命令行,因为它是一个参数(“argv”)。从那以后 掌握了一点C语言的编程,你必须达到

如何创建命令行管道?(xcode mac os x)你好,我想 使用xcode(mac os x)创建一个具有 在“|”之后的管道中使用

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

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

在objective-c或c中,简单地说,给一个命令行赋予 由于在管道中使用了一个接一个的“|” 命令行中,有必要将“stdin”重定向到 命令行,因为它是一个参数(“argv”)。从那以后 掌握了一点C语言的编程,你必须达到它的目的 使用xcode创建命令行,在“|”之后可用

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

并取得一些成就

参数数组的第一个参数在任何情况下都包含no 要创建的命令行的,例如:argv[0]“echo”和 您希望使用的参数“here for echo argv[1] 如果echo能够接受一个论点,那么“阳光照耀” 在“|”(管道)之后,例如:echo“太阳在发光”| echo,但是 不要使用管道

对于我们的主要功能,基本上我们将检查argv[1] 包含一个由

如果为空,则需要找到参数才能继续使用 命令行,为此,我们接受以下假设:如果 在“|”之后放置的行是上一个管道的输出 命令不是空的,后面将出现什么

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

         int main (int argc, char ** argv) 
    {
     char buf [512] = ""; 
    char buf1[512] = "";
int f;
     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));