zoukankan      html  css  js  c++  java
  • Pipeline 与 xargs

    Pipeline 与 xargs

    Pipeline与命令行參数

    应用程序接收输入的两种方式:

    • 命令行參数

    输入字符串被当成參数,通过int main(int argc, char **argv), 中的argv传入。或使用

    以下API获取,再自己分析:

    LPTSTR WINAPI GetCommandLine(void); 
    • Pipeline

    指示输入内容存放在标准输入上。标准输入能够理解成一个文件,通常是字符界面终端。

    也能够是一个暂时文件。

    Pipeline

    stdin,stdout 与 stderr

    普通情况下,stdin, stdout与stderr都指向屏幕输入,即字符界面终端。但在使用管道时,

    stdin与stdout并不指向终端。比如:

    program1 | program2 

    program1的标准输出会作为program2的标准输入,整个过程不经过终端,因此在屏幕上看

    不到program1的输出。

    仅仅有stderr一直指向终端。

    因此假设想保证输出到终端。就要使用stderr。

    读取来自Pipeline的输入

    读取来自于管道的输入,事实上就是读取标准输入。

    以下代码回显Pipeline输入:

    int main (int argc, char **argv)
    {
        char buffer[64];
        int nActualRead = 0;
    
        while ( true )
        {
            nActualRead = fread( buffer, 1, 64-1, stdin );
    
            if ( nActualRead > 0 )
            {
                buffer[nActualRead] = ''; 
    
                // Using stderr to make sure alway output to terminal.
                fprintf( stderr, "%s", buffer ); 
            }
            else
            {
                break;
            }
        }
    
        return 0;
    }

    xargs

    xargs的功能是将输入内容拆分成若干记号,再作为下一个程序的命令行參数。

    xargs的通经常使使用方法是:

    program1 | xargs program2

    如:

    ls | xargs wc 
    
         29      82    1834 0059441.html
         37      83    1685 0059441.md
         66     165    3519 total

    xargs分析来自于ls的输入,组合成命令行參数,传给wc并运行。

    查看xargs分析组合后的结果:

    ls | xargs 
    0059441.html 0059441.md

    即。ls | xargs wc 相当于运行 wc 0059441.html 0059441.md

    vim -

    指示Vim接收管道的形式为 vim -
    如:

    ls | vim -

    Vim将读取ls的输出,并当作其的缓冲内容。

    须要说明的是,”vim -“是Vim自己定义的形式,

    在其他命令中”-“并不能代表标准输入。

  • 相关阅读:
    支持向量机SVM知识点概括
    决策树知识点概括
    HDU 3081 Marriage Match II
    HDU 3572 Task Schedule
    HDU 4888 Redraw Beautiful Drawings
    Poj 2728 Desert King
    HDU 3926 Hand in Hand
    HDU 1598 find the most comfortable road
    HDU 4393 Throw nails
    POJ 1486 Sorting Slides
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7388121.html
Copyright © 2011-2022 走看看