• popen strtok 函数的使用


    FILE * popen ( const char * command , const char * type );
    int pclose ( FILE * stream );
     
    type 参数只能是读或者写中的一种,"r"   "w"
    得到的返回值(标准 I/O 流)也具有和 type 相应的只读或只写类型。如果 type 是 "r" 则文件指针连接到 command 的标准输出;如果 type 是 "w" 则文件指针连接到 command 的标准输入。
     
    popen 的返回值是个标准 I/O 流,必须由 pclose 来终止。
     

    long long len;
    char *tok;

    char buf[512];
    FILE *p = popen("df -h", "r");

    while(fgets(buf, sizeof(buf)-1, p) != NULL)
    {
        printf("%s ", buf);
    }

    tok = strtok(buf, " ");

    tok = strtok(NULL, " ");

    len = atoll(tok);

    printf("%lld ", len);

    tok = strtok(NULL, " ");

    len = atoll(tok);

    printf("%lld ", len);

    pclose(p);

    ---------------------------------------------------

    strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串,参数delim则为分割字符串中包含的所有字符。

    当strtok()在参数s的字符串中发现参数delim中包含的分割字符时,则会将该字符改为 字符。

    在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回指向被分割出片段的指针

     

    strtok函数会破坏被分解字符串的完整,调用前和调用后的buf已经不一样了

    int i = 0;
    char buf[] = "192..168.0...8...";
    int len = strlen(buf);

    char *p = strtok(buf, ".");
    printf("%s ", p);

    printf("%s ", buf);
    for(i=0;i<len;i++)
    {
    printf("%c", buf[i]);
    }
    printf(" ");

    p = strtok(NULL, ".");

    printf("%s ", p);

    p = strtok(NULL, ".");

    printf("%s ", p);

    p = strtok(NULL, ".");

    printf("%s ", p);

  • 相关阅读:
    [UVA10859 放置街灯 Placing Lampposts]
    洛谷7月月赛题解(2020)
    [学习笔记]马拉车-Manacher
    [SP1026] FAVDICE
    [NOIP2013]货车运输
    [洛谷P1801]黑匣子
    [HAOI2015]树上染色
    python-第二块:time模块和datatime模块
    python-作业:员工信息表
    python-第二块,笔记整理和学习内容复习(day7)
  • 原文地址:https://www.cnblogs.com/zhangxuan/p/6265566.html
Copyright © 2020-2023  润新知