`

Linux/Unix C 编程 标准I/O函数(2):输入输出函数

阅读更多
#include <stdio.h>
输入函数:int getc(FILE *fp), int fgetc(FILE *fp), int getchar(void), char *fgets(char * buf, FILE *fp), char *gets(char *buf),size_t fread(void *ptr, size_t szie, size_t nobj, FILE *fp)。
输出函数:int putc(int c, FILE *fp), int fputc(int c, FILE *fp), int putchar(int c),     int fputs(const char *str, FILE *fp), int puts(const char *str),size_t fwrite(const void *ptr, size_t size, size_t nobj, FILE *fp)。

其中:
getc,fgetc,getchar,putc,fputc,putchar 函数用于一次一个字符输入输出。

fgets,gets,fputs,puts 用于一次一行输入输出。

fread, fwrite 用于读写一个二进制数组或者一个结构。

函数 getchar==getc(stdin),putchar==putc(c, stdout)。
getc,putc 两个函数可实现为宏,fgetc 和 fputc 不能实现为宏。

gets 是不安全的,原因如果读到的字符数如果大于缓冲区长度,因为不能设置缓冲区长度,因此可能会溢出,故不推荐使用。

puts 是安全的,将一个以null结尾的字符串写到标准输出后再将一个换行符写到标准输出。

fgets 必须指定缓冲区长度,读取(指定长度-1)个的字符串,以null字符结尾。函数将读到下一个换行符为止,但不会读取超过(指定长度-1)个字符,如果一次无法读完一行,则返回的不是一行,而是(指定长度-1)个字符,再次调用fgets将会从未读字符位置读取。

fputs 将一个以null结尾的字符串写到指定流,null不写出。通常 null 前面是一个换行符,但并不要求一定是。

fread,fwrite 读写二进制数组或者结构体,如:

将一数组中的第2-5个元素写入文件:
float data[10];

fwrite(&data[2], sizeof(float), 4, fp); // &data[2]开始写入的位置, sizeof(float)要写入每个数据长度,4为要写入的数量。。。

读取一个结构体:
struct{
int count;
char szmsg[1024];
}item;

fread(&item, sizeof(item), 1, fp ); // &item 结构体指针,长度,数量。。。

使用标准I/O库的输入输出函数由于数据量的大小,可能效率不高,如 fgets和fputs 要在内核和标准I/O之间复制一次数据,然后再在标准I/O和用户程序之间再复制一次。因此可考虑使用其它快速I/O库版本。
分享到:
评论

相关推荐

    LINUX与UNIX SHELL编程指南(很全)

    9.2.11 awk输出函数printf 81 9.2.12 printf修饰符 81 9.2.13 awk数组 86 9.3 小结 88 第10章 sed 用法介绍 89 10.1 sed怎样读取数据 89 10.2 调用sed 89 10.2.1 保存sed输出 90 10.2.2 使用sed在文件中查询文本的...

    LINUX与UNIX SHELL编程指南

    第五章 SHELL输入输出 第六章 命令执行顺序 第二部分 文本过滤 第七章 正则表达式介绍 第八章 GERP家族 第九章 AWK介绍 第十章 SED用法介绍 第十一章 合并与分割 第十二章 TR用法 第三部分 登录环境 第十三章 登录...

    绝版经典 LINUX与UNIX SHELL编程指南 PDF 高清版 [16.3M]

    第五章 SHELL输入输出 第六章 命令执行顺序 第二部分 文本过滤 第七章 正则表达式介绍 第八章 GERP家族 第九章 AWK介绍 第十章 SED用法介绍 第十一章 合并与分割 第十二章 TR用法 第三部分 登录环境 第十...

    Linux与unix shell编程指南

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell ...

    UNIX环境高级编程

    目 录 译者序 译者简介 前言 第1章 UNIX基础知识 1 ... 本书内容丰富权威,概念清晰精辟,一直以来被誉为UNIX编程的“圣经”,对于所有UNIX程序员—无论是初学者还是专家级人士—都是一本无价的参考书籍。

    unix环境编程电子书

    107 第5章 标准I/O库 109 5.1 引言 109 5.2 流和FILE对象 109 5.3 标准输入、标准输出和标准出错 110 5.4 缓冲 110 5.5 打开流 112 5.6 读和写流 114 5.7 每次一行I/O 116 5.8 标准I/O的效率 117 ...

    UNIX环境高级编程_第2版.part2

     本书第1版出版后的十几年中,UNIX行业已经有了巨大的变化,特别是影响UNIX编程接口的有关标准变  化很大。本书在保持了前一版风格的基础上,根据最新的标准对内容进行了修订和增补,反映了最新的技  术发展。...

    UNIX环境高级编程第二版

    5.6.2 输出函数 97 5.7 每次一行I/O 98 5.8 标准I/O的效率 99 5.9 二进制I/O 100 5.10 定位流 102 5.11 格式化I/O 103 5.11.1 格式化输出 103 5.11.2 格式化输入 103 5.12 实现细节 104 5.13 临时文件 105 5.14 标准...

    LINUX与UNIX SHELL编程指南 高清PDF

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...

    绝版经典《Linux与UNIX Shell编程指南》

    9.2.11 awk输出函数printf 81 9.2.12 printf修饰符 81 9.2.13 awk数组 86 9.3 小结 88 第10章 sed 用法介绍 89 10.1 sed怎样读取数据 89 10.2 调用sed 89 10.2.1 保存sed输出 90 10.2.2 使用sed在文件中查询文本的...

    UNIX环境高级编程_第二版中文

    5.3 标准输入、标准输出和标准出错  5.4 缓冲  5.5 打开流  5.6 读和写流  5.7 每次一行I/O  5.8 标准I/O的效率  5.9 二进制I/O  5.10 定位流  5.11 格式化I/O  5.12 实现细节  5.13 临时文件...

    linux与unix shell编程指南part2

    9.2.11 awk输出函数printf 81 9.2.12 printf修饰符 81 9.2.13 awk数组 86 9.3 小结 88 第10章 sed 用法介绍 89 10.1 sed怎样读取数据 89 10.2 调用sed 89 10.2.1 保存sed输出 90 10.2.2 使用sed在文件中查询文本的...

    Linux与Unix Shell编程指南(PDF格式,共30章)

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...

    UNIX环境高级编程 不扣分哦

    本书内容丰富权威,概念清晰精辟,一直以来被誉为UNIX编程的“圣经”,对于所有UNIX程序员—无论是初学者还是专家级人士—都是一本无价的参考书籍。 目 录 译者序 译者简介 前言 第1章 UNIX基础知识 1 1.1 引言 ...

    linux与unix shell编程指南.rar

    linux/unix shell编程指南,全面介绍了Linu/unix shell编程的常用知识和技巧,是不可多得的编程宝典。 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限...

    绝版高清经典Linux与UNIX_Shell编程指南中文版

    shell输入与输出 命令执行顺序 文本过滤正则表达式介绍 grep 家族 awk 介绍 sed用法介绍 合并与分割 tr用法 登陆环境 登陆环境 环境和shell变量 引号 基础shell编程 shell脚本介绍 条件测试 控制流...

Global site tag (gtag.js) - Google Analytics