zoukankan      html  css  js  c++  java
  • [置顶] getline函数-linux

    头文件:

    #include <stdio.h>

    函数:

    ssize_t getline(char **lineptr, size_t *n, FILE *stream);


    eg:

    ssize_t size;//存放 当前行 的长度(包括“ ”)

    char * line = NULL;//存放 当前行 的字符串

    size_t len;//文件总长度

    FILE *fp;

    size = getline( &line, &len, fp );


    [

    注意;

    最后需要判断 line 是否为空指针,如果不是需要释放

    ]


    一、解释[ man getline ]

    #include <stdio.h>

    #include <stdlib.h>
    int main(void)
    {

    FILE * fp;

    char * line = NULL;

    size_t len = 0;

    ssize_t read;


    fp = fopen("/etc/motd", "r");


    if (fp == NULL)

    exit(EXIT_FAILURE);


    while ((read = getline(&line, &len, fp)) != -1) 

    {

    printf("Retrieved line of length %zu : ", read);
    printf("%s", line);

    }


    if (line)

    free(line);


    return EXIT_SUCCESS;

    }


    二、分析:

    1、程序:

    #include <stdio.h>

    #include <stdlib.h>

    int main(void)

    {

            FILE * fd;

            ssize_t size;//存放 当前行 的长度(包括“ ”)

            size_t len = 0;//文件总长度

            char * line = NULL;//存放 当前行 的字符串


            system( "ls / >>log" );

            fd = fopen( "log", "r" );


            size = getline( &line, &len, fd);

            printf( "line %s ", line );

            printf( "size %d ", size );

            printf( "len %d ", len );


            size = getline( &line, &len, fd);

            printf( "line %s ", line );

            printf( "size %d ", size );

            printf( "len %d ", len );


            size = getline( &line, &len, fd);

            printf( "line %s ", line );

            printf( "size %d ", size );

            printf( "len %d ", len );


            if(line)[注释: 释放 line]

                    free(line);

            return 0;

    }


    2、结果:

    line bin

    size 4

    len 120


    line boot

    size 5

    len 120


    line dev

    size 4

    len 120




  • 相关阅读:
    Django笔记:上下文处理器和中间件
    Django笔记:Cookie和Session
    redhat 7.4从openssh7.6离线升级openssh8.4p1解决方法
    “应用程序无法正常启动(0xc000007)”处理办法
    "安装VMware Tools"显示灰色的解决办法
    redis 根据模板批量生成使用不同端口的配置文件并运行运行服务
    扩展 docker 管理命令
    shell getopt 讲解
    编写 Redis 测试 shell 脚本
    自定义 shell 软件安装脚本
  • 原文地址:https://www.cnblogs.com/james1207/p/3297378.html
Copyright © 2011-2022 走看看