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




  • 相关阅读:
    Thymeleaf标签使用
    mybatis映射和条件查询
    开发模型
    Sentinel降级服务
    Sentinel
    Nacos注册中心
    SpringCloudAlibaba简介
    Sleuth
    Stream消息驱动
    如何用JAVA爬取AJAX加载后的页面(利用phantomjs)【以天眼查为例】
  • 原文地址:https://www.cnblogs.com/james1207/p/3297378.html
Copyright © 2011-2022 走看看