头文件:

#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. the convertion between string and BlobColumn

    It's hard to find some samples about the convertion between string and BlobColumn.AddBlobData. It's ...

  2. How Many Answers Are Wrong(并查集)

    Description TT and FF are ... friends. Uh... very very good friends -________-b FF is a bad boy, he ...

  3. linux ln 命令(转载)

    ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln –s 源文件 目标文件. 当我们需要在不同的目录,用到相同的 ...

  4. javascript 学习随笔7

    <head> <title>标题页-学无忧(www.xue51.com)</title> <script language="JavaScript& ...

  5. 创建js对象和js类

    //第一种定义方式 var person=new Object(); //创建了一个对象. person.name="tom"; //使用person对象对调用name属性,它的值 ...

  6. TC基础使用指南(基于xbeta的TC配置文件)

    所有常用目录都可以通过ctrl+d加一个或几个字母的超快捷方式直接跳转到位. 按下BackSpace键,就可以进入到上一级目录 Ctrl+q 在右侧打开左侧选定文件,再按一次Ctrl+q退出 按 Ct ...

  7. hive on spark的安装及问题

    配置hive hive-site <property> <name>hive.metastore.uris</name> <value>thrift:/ ...

  8. 使用msys

    下载地址:http://msys2.github.io/ 更新:pacman -Syu 安装git:pacman -S git 或者使用cygwin 调色:编辑~/.minttyrc Foregrou ...

  9. 简单的iOS抽屉效果

    #define screenW [UIScreen mainScreen].bounds.size.width #import "ViewController.h" @interf ...

  10. Codeforces 360C Levko and Strings dp

    题目链接:点击打开链接 题意: 给定长度为n的字符串s,常数k 显然s的子串一共同拥有 n(n-1)/2 个 要求找到一个长度为n的字符串t,使得t相应位置的k个子串字典序>s #include ...