Unix高级编程之标准IO

c标准io---带缓存的io

优势:
带缓存(合并系统调用)
缺点:
实时性低
缓存的类型:
行缓存:stdin stdout(缓存区是有大小)
全缓存:文件
无缓存:stderr

1.流
打开文件的标识

2.FILE类型
结构体类型:
文件描述符
缓存区的地址
缓存的大小

出错标识

3.流的打开
fopen(3);

errno全局变量
定义的宏:
/usr/include/asm-generic/errno-base.h
/usr/include/asm-generic/errno.h
strerror(3);
perror(3);

4.流的操作(读写)
<1>字节
fgetc();/fputc();
getchar();/putchar();
getc();/putc();
<2>按行
fgets();/fputs();
gets();/puts();
<3>二进制
fread();/fwirte();
<4>格式化
fscanf();/fprintf();
scanf();/printf();

5.流的定位
fseek();
ftell();
rewind();

6.流的关闭
fclose(3);

7.流的刷新
fflush(3);

8.临时文件
tmpnam();//了解
tmpfile();//掌握

9.io效率
讨论的不是缓存大小的影响
标准io在调用fopen()时就已经创建缓存区
优先选择:
fgets();/fputs();
fread();/fwrite();
10.
setbuf();
setvbuf();

作业:
将一个文件的第5行的最开始加入一个字符串"uplooking"

时间: 2024-12-28 01:34:19

Unix高级编程之标准IO的相关文章

Unix高级编程之文件IO

文件io---低级io 特点: 不带缓存io优点: 实时性高 1.io基本操作 文件描述符:文件io打开文件的标识 非负整型数,是内核为打开文件维护结构的数组下标 默认最多能打开1024文件 stdin-----0 stdout-----1 stderr-----2 函数: open(2); read(2); write(2); lseek(2); <1>允许偏移的字节个数大于文件本身 <2>lseek()本身不进行读写操作 空洞文件 空洞文件本身不占用磁盘空间 close(2);

&lt;unix高级编程&gt;笔记 chapter1

os严格上是软件,为计算机提供资源和app运行环境. 特称为内核. 内核的接口被成为system call;然后库函数对system call进行了封装;shell是特殊app,为运行其他程序提供了一个接口. shell是个命令行解释器,读取输入,执行命令. unix文件系统是由directory和file组成.目录起点成为root,名字是/. 文件属性指类型\大小\所有者\权限以及修改时间.stat和fstat返回文件属性的结构. 比如下面操作: 2.文件名 只有/和null不能出现在文件名里

unix高级编程中的一个头文件 apue.h 与一个差错文件error.c 的内容

在查看unix高级编程中的代码时,如果我们编写书中的代码,发现一般都会报错,这是因为作者在写这本书时,他自己编写了一个头文件,跟一个差错处理文件,出来处理他自己的代码错误信息: 下面我们来看下代码的内容: 我实现第一个代码,关于文件的打开,实现 ls 命令的代码: #include "apue.h"#include <stdio.h>#include <dirent.h> int main(int argc, char *argv[]){ DIR *dp; st

看unix高级编程时遇到apue.h找不到的问题

一开始看到这本书,刚翻了几页,就觉得对味.按照书中的代码做练习时,编译代码文件提示fatal error: apue.h: No such file or directory.翻看书的附录B,可以看到apue.h的资料,原来作者是为了减少书中示例代码的长度,将很多包含头文件的代码封装到了apue.h 这个文件. 下载源码 从unix高级编程书籍官网下载书籍的上的所有源码. wget http://www.apuebook.com/src.tar.gz 解压这个文件 tar -zxvf src.t

UNIX 高级编程(第二版) apue.h配置问题

在第二版的UNIX高级编程中,apue.h头文件下载后,编译过程中出现无法编译的问题,解决方法如下: 在http://www.apuebook.com/下载src.tar.gz源代码的压缩包. 1.解压至/home/user/目录下 2.修改 Make.defines.linux中的WKDIR=/home/xxx/apue.2e,为WKDIR=/home/user/apue.2e 3.返回至apue.2e目录下面,修改linux.mk,将里面的nawk全部改为awk,可以使用这个命令 :%s/n

Python高级编程和异步IO并发编程

Python高级编程和异步IO并发编程网盘地址:https://pan.baidu.com/s/1eB-BsUacBRhKxh7qXwndMQ 密码: tgba备用地址(腾讯微云):https://share.weiyun.com/5Z3x9V0 密码:7cdnb2 针对Python高级编程和异步IO并发编程,把每个Python高级知识点从起因到原理讲透的课程全网难寻 第1章 课程简介第2章 python中一切皆对象第3章 魔法函数第4章 深入类和对象第5章 自定义序列类第6章 深入python

Unix环境高级编程(三)标准I/O库

标准I/O库是ISO C的标准,在很多操作系统上面都实现.Unix文件I/O函数都是针对文件描述符的,当打开一个文件的时候,返回该文件描述符用于后续的I/O操作.而对于标准I/O库,操作则是围绕流进行,当用标准I/O库打开或者创建一个文件时,使得一个流与文件相关联.标准I/O库使用了缓冲技术,使用缓冲的目的是尽可能减少使用read和write调用次数,但是效率不高.每次进行读写时候需要复制两次数据.第一次是在内核和标准I/O缓冲之间(调用read和write),第二次是在标准I/O缓冲区和用户程

Unix高级编程之进程环境

进程:运行的程序线程:运行的函数 1.main() 启动例程 exit(int main(argc, argv));2.进程终止进程正常终止: <1>main() return; <2>exit(3); 1)调用终止处理程序 2)标准IO清理程序 <3>_exit(2) _Exit(2); <4>最后一个线程调用pthread_exit(3); <5>最后一个线程从启动例程返回异常终止: <1>abort(3); <2>线

【UNIX环境高级编程】文件 IO 操作 - 基础函数 open close creat lseek write read 详解

博客地址 : http://blog.csdn.net/shulianghan/article/details/46980271 一. 文件打开关闭操作相关函数介绍 1. open 函数 (1) open 函数简介 open 函数解析 : -- 函数定义 : #include <fcntl.h> int open(const char *path, int oflag, ...); -- 函数作用 : 打开或者创建一个文件; -- 返回值 : 打开文件成功, 返回文件描述符; 如果失败, 返回