[置顶] getline函数-linux
头文件:
#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的更多相关文章
- [置顶] access函数-linux
表头文件 #include<unistd.h> 定义函数 int access(const char * pathname, int mode); 函数说明 检查是否可以读/写某一已存在的 ...
- [置顶] mkdir函数-linux
tyle="margin:20px 0px 0px; font-size:14px; line-height:26px; font-family:Arial">
- [置顶] getopt_long函数基本用法-linux
一.感性认识: [c-sharp] view plain copy #include <stdio.h> #include <getopt.h> char * l_opt ...
- [置顶] 简单解析linux下进程通信方法
linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的.而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间 ...
- [置顶] export命令-linux
export 命令 功能说明: 设置或显示环境变量. 语 法: export [-fnp][变量名称]=[变量设置值] 补充说明: 在shell中执行程序时,shell会提供一组环境变量. expor ...
- [置顶] tar命令-linux
tar命令 先对文件进行打包,然后进行压缩. [.tar..gz..tar.gz..tgz..bz2..tar.bz2..Z..tar.Z..zip..rar] [主要讲tar,其他还有zip/unz ...
- ahk之路:利用ahk在window7下实现窗口置顶
操作系统:win7 64位 ahk版本:autohotkey_L1.1.24.03 今天安装了AutoHotkey_1.1.24.03.SciTE.PuloversMacroCreator,重新开始我 ...
- [置顶]
linux getline()函数
getline()函数是什么?百度百科这样解释: getline不是C库函数,而是C++库函数.它会生成一个包含一串从输入流读入的字符的字符串,直到以下情况发生会导致生成的此字符串结束.1) ...
- Linux下的getline函数
最近在做国嵌的mp3项目,在mp3主控程序中用到了这个函数,挺好使的,在这里记录一下.注意是linux下的,不是C++中的. 函数原型 ssize_t getline(char **lineptr, ...
随机推荐
- the convertion between string and BlobColumn
It's hard to find some samples about the convertion between string and BlobColumn.AddBlobData. It's ...
- How Many Answers Are Wrong(并查集)
Description TT and FF are ... friends. Uh... very very good friends -________-b FF is a bad boy, he ...
- linux ln 命令(转载)
ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln –s 源文件 目标文件. 当我们需要在不同的目录,用到相同的 ...
- javascript 学习随笔7
<head> <title>标题页-学无忧(www.xue51.com)</title> <script language="JavaScript& ...
- 创建js对象和js类
//第一种定义方式 var person=new Object(); //创建了一个对象. person.name="tom"; //使用person对象对调用name属性,它的值 ...
- TC基础使用指南(基于xbeta的TC配置文件)
所有常用目录都可以通过ctrl+d加一个或几个字母的超快捷方式直接跳转到位. 按下BackSpace键,就可以进入到上一级目录 Ctrl+q 在右侧打开左侧选定文件,再按一次Ctrl+q退出 按 Ct ...
- hive on spark的安装及问题
配置hive hive-site <property> <name>hive.metastore.uris</name> <value>thrift:/ ...
- 使用msys
下载地址:http://msys2.github.io/ 更新:pacman -Syu 安装git:pacman -S git 或者使用cygwin 调色:编辑~/.minttyrc Foregrou ...
- 简单的iOS抽屉效果
#define screenW [UIScreen mainScreen].bounds.size.width #import "ViewController.h" @interf ...
- Codeforces 360C Levko and Strings dp
题目链接:点击打开链接 题意: 给定长度为n的字符串s,常数k 显然s的子串一共同拥有 n(n-1)/2 个 要求找到一个长度为n的字符串t,使得t相应位置的k个子串字典序>s #include ...