[置顶] 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, ... 
随机推荐
- 「Foundation」字符串
			一.Foundation框架中一些常用的类 字符串型: NSString:不可变字符串 NSMutableString:可变字符串 集合型: 1)NSArray:OC不可变数组 NSMutableA ... 
- jQuery $.fn.extend方式自定义插件
			之前例子是扩展jQuery的工具方法,即通过$.xxx(para);的形式来使用的.下面是扩展jquery对象的方法,即任意一个jquery对象都已访问. 具体如下: wyl.js: (functio ... 
- 一个分组查询 每组前 10 的sql 语句
			USE tmpgo CREATE TABLE Employee( ID int identity(1,1), EmpName varchar(20), EmpSalary varchar(10), E ... 
- detain ssh server 设置(也许必须是root来安装?)
			ssh connection refused 处理方法 一般这种情况是 opens server 没安装 或 没启动 检查 openssh 是否安装 su 登录root账号,安装 openssh se ... 
- 一个包含所有c++的头文件的头文件
			#include <bits/stdc++.h> 做CF看见别人用这个函数,然后就能直接用vector,set,string那些函数了,摸不着头脑,感觉特神奇就百度了一下,才发现这个是C+ ... 
- Unity的Cover flow的实现包(2个)
			苹果的mac机上预览图片,有一个所谓的cover flow的效果,这里收集到两个,两个实现效果略有不同. 1.老外的实现 https://github.com/rakkarage/Unity3D-Co ... 
- Activity的onSaveInstanceState()和onRestoreInstanceState()以及API详解
			为了弄清楚onSaveInstanceState()方法和onRestoreInstanceState()方法,我翻译一下谷歌的API,翻译如下: There are a few scenarios ... 
- 在vmware里面免费安装纯净的xp虚拟机
			1. 安装vmware, 略 2. 下载xp http://msdn.itellyou.cn/ 用迅雷下载Windows XP Professional with Service Pack 3 (x8 ... 
- linux命令sysctl使用
			以前没有注意过这个命令,直到有次在单位安装greenplum的时候,在没有配置系统参数的情况下,出现了设备空间不足的报错信息. 当然,安装的不是我的本机,而是公用的服务器,编辑修改系统参数后,仍然出现 ... 
- 虚拟rethat联网问题
			近日在vmware虚拟了一台rethat的linux,但是使用桥连也上不了网! 宿主机是win7,由于在公司,是采用固定ip上网的,通过上网查资料,终于可以连接网络了: 步骤如下: 第一:修改vi / ... 
