头文件:

#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. java反射机制入门04

    需要jxl.jar package com.rainmer.main; import java.io.File; import java.io.IOException; import java.uti ...

  2. unity之uv贴图画圆弧,圆弧面,不规则图形

    由于最近一直没有时间,所以这篇博客一直没发,下面我说说uv画圆弧,圆面,不规则面拼接. 先来两张效果图 图截的不咋滴,凑合着看吧,画圆弧主要用的贝塞尔曲线画的,我感觉这个比较简单,当然大家也可以使用圆 ...

  3. poj3693之后缀数组

    Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5946   Accepted: 1799 Description The r ...

  4. WEB ICON 的探讨

    一般考虑到webicon 就是cssSprite和自定义font:本文基于下述而总结和进行分析,如有笔误有望指出,谢谢 在线教程:用字体在网页中画ICON图标 http://www.imooc.com ...

  5. BZOJ 1610: [Usaco2008 Feb]Line连线游戏

    1610: [Usaco2008 Feb]Line连线游戏 Description Farmer John最近发明了一个游戏,来考验自命不凡的贝茜.游戏开始的时 候,FJ会给贝茜一块画着N (2 &l ...

  6. A. Liserious战队

    Liserious战队是一支活跃在京沪地区的著名密室逃脱战队,在优秀的队长Liserious和芳姐的带领下,打遍天下大大小小的密室逃脱,攻无不克,战无不胜,上天入地无所不能. 世界密室逃脱委员会以IS ...

  7. FastStone Capture(FSCapture) 注册码 _图形图像_软件教程_脚本之家

    FastStone Capture(FSCapture) 注册码 _图形图像_软件教程_脚本之家 FastStone Capture 注册码 序列号: name/用户名:TEAM JiOO key/注 ...

  8. epoll的LT和ET模式

    原理參考该博客 从man手冊中,得到ET和LT的详细描写叙述例如以下 EPOLL事件有两种模型: Edge Triggered (ET) Level Triggered (LT) 假如有这样一个样例: ...

  9. hdu4513之manacher算法

    吉哥系列故事——完美队形II Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) T ...

  10. 【OpenCV】OpenCV2.4.6 与Visiual Studio 2008,Python2.7.5配置和图像载入显示

    自从OpenCV2.2开始,OpenCV 库便分成几个模块并位于lib文件中,本节介绍从OpenCV2.4.6与VS2008 .Python2.7.5如何配置环境,如何外部文件载 入图像.在窗口中显示 ...