头文件:

#include <stdio.h>

函数:

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

eg:

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

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 :\n", 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;//存放 当前行 的长度(包括“\n”)

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

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

system( "ls / >>log" );

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

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

printf( "line %s\n", line );

printf( "size %d\n", size );

printf( "len %d\n", len );

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

printf( "line %s\n", line );

printf( "size %d\n", size );

printf( "len %d\n", len );

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

printf( "line %s\n", line );

printf( "size %d\n", size );

printf( "len %d\n", 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

[置顶] getline函数-linux的更多相关文章

  1. [置顶] access函数-linux

    表头文件 #include<unistd.h> 定义函数 int access(const char * pathname, int mode); 函数说明 检查是否可以读/写某一已存在的 ...

  2. [置顶] mkdir函数-linux

    tyle="margin:20px 0px 0px; font-size:14px; line-height:26px; font-family:Arial">

  3. [置顶] getopt_long函数基本用法-linux

    一.感性认识: [c-sharp]  view plain copy   #include <stdio.h> #include <getopt.h> char * l_opt ...

  4. [置顶] 简单解析linux下进程通信方法

    linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的.而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间 ...

  5. [置顶] export命令-linux

    export 命令 功能说明: 设置或显示环境变量. 语 法: export [-fnp][变量名称]=[变量设置值] 补充说明: 在shell中执行程序时,shell会提供一组环境变量. expor ...

  6. [置顶] tar命令-linux

    tar命令 先对文件进行打包,然后进行压缩. [.tar..gz..tar.gz..tgz..bz2..tar.bz2..Z..tar.Z..zip..rar] [主要讲tar,其他还有zip/unz ...

  7. ahk之路:利用ahk在window7下实现窗口置顶

    操作系统:win7 64位 ahk版本:autohotkey_L1.1.24.03 今天安装了AutoHotkey_1.1.24.03.SciTE.PuloversMacroCreator,重新开始我 ...

  8. [置顶] linux getline()函数

    getline()函数是什么?百度百科这样解释:      getline不是C库函数,而是C++库函数.它会生成一个包含一串从输入流读入的字符的字符串,直到以下情况发生会导致生成的此字符串结束.1) ...

  9. Linux下的getline函数

    最近在做国嵌的mp3项目,在mp3主控程序中用到了这个函数,挺好使的,在这里记录一下.注意是linux下的,不是C++中的. 函数原型 ssize_t getline(char **lineptr, ...

随机推荐

  1. 面向对象之静态方法(static)和实例化方法的区别

    这是一个经常被时时提出来的问题,很多时候我们以为理解了.懂了,但深究一下,我们却发现并不懂. 方法是我们每天都在写得,很多程序员大多都使用实例化方法,而很少使用静态方法,问原因也说不出来所以然,或者简 ...

  2. 记一次排查log4net 不输出日志的解决过程

    最近发现log4net 不输出日志了,重点排查几个地方,发现都没有问题. 1.[assembly: log4net.Config.XmlConfigurator(ConfigFile = " ...

  3. Spring源码地址和相关介绍的网址

    Spring源码地址下载: https://github.com/spring-projects/spring-framework/tags >多图详解Spring框架的设计理念与设计模式:ht ...

  4. ThinkPHP第七天(F函数使用,项目分组配置,项目分组模板文件放置规则配置)

    1.F(文件名称,写入数据,写入地址),用于将数据写入至磁盘文件中,如F('Data',$arr,'./Data/'),作用是将$arr写入至网站根目录的Data文件夹中的Data.php中. 2.读 ...

  5. 设置textarea文本域不能调整大小 resize

    CSS3中新增了resize缩放属性,这个属性可以应用到任意元素.目前只有Webkit内核的浏览器才支持这个css3属性,即Google chrome和Apple safari都支持.而textare ...

  6. ssh连接Linux自动断开后再也无法连上的问题

    近期公司测试机有点抓狂,情况是这样的:用SSH登录后正常使用,但另外一部电脑也在登录,这时候会发生全部断开的情况,再也无法连接,连IP都PING不通. 今天尝试在/etc/hosts.deny 加入如 ...

  7. stm32之GPIO

    stm32有5组GPIO口,GPIOA GPIOB GPIOC GPIOD GPIOE 每个GPIO端口有: 2个配置寄存器GPIOx_CRL, GPIOx_CRH(32位): 2个数据寄存器GPIO ...

  8. ThinkPHP - Widget 工具

    提出问题:widget能实现什么功能? 显示右侧博文: 1.首先在Home目录下新建Widget文件夹,之后建立对应文件 2.拿最热Hot新闻来举例: 在Tpl目录下Common公共文件夹里的righ ...

  9. 【Web】HttpServletRequest request 相关方法 得到路径

    username=qqqq password=wwww //----------------------POST-------------------> http://192.168.1.211 ...

  10. Google Code Jam Round 1A 2015 Problem B. Haircut 二分

    Problem You are waiting in a long line to get a haircut at a trendy barber shop. The shop has B barb ...