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




  • 相关阅读:
    ubuntu 14.4 apache2 django
    github上的版本和本地版本冲突的解决方法
    Javascript能做什么 不能做什么。
    django 取model字段的verbose_name值
    Django在admin模块中显示auto_now_add=True或auto_now=True的时间类型列
    合并多个python list以及合并多个 django QuerySet 的方法
    摘抄
    Python 字符串拼接
    学习HTTP
    Django 自定义模板标签和过滤器
  • 原文地址:https://www.cnblogs.com/james1207/p/3297378.html
Copyright © 2011-2022 走看看