APUE学习笔记——5.5~5.7数据流的打开与读写
1.open
#include <stdio.h>FILE *fopen(const char *restrict pathname,const char *restrict type)FILE *freopen(const char *restrict pathname,const char *restrict type,FILE *restrict fp);FILE *fdopen(int fd,const char *type);--All three return: file pointer if OK,NULLon error

example:
#include<stdio.h>intmain(){/*redirect standard output to file test.out*/if(freopen("./test.out","w",stdout)==NULL)fprintf(stderr,"errorredirectingstdout\n");/*this output will go to a file test.out*/printf("Hello World\n");/*close the standard output stream*/fclose(stdout);return 0;}
#include<stdio.h>intmain(){FILE *fp = fdopen(0,"w+");fprintf(fp,"%s\n", "Hello world!");fp =fdopen(1,"w+");fprintf(fp,"%s\n","Hello world!");fclose(fp);}
2.read and write
#include <stdio.h>int getc(FILE *fp);int fgetc(FILE *fp);int getchar(void);All three return: next character if OK,EOFon end of file or error
#define getc(_fp) _IO_getc (_fp)
#include <stdio.h>int ferror(FILE *fp);int feof(FILE *fp);Both return: nonzero(true) if condition is true, 0 (false) otherwisevoid clearerr(FILE *fp);
#include <stdio.h>int ungetc(intc,FILE *fp);Returns:cif OK,EOFon error
back回去
#include <stdio.h>int putc(intc,FILE *fp);int fputc(intc,FILE *fp);int putchar(intc);All three return:cif OK,EOFon error
行缓冲 Line-at-a-Time I/O
#include <stdio.h>char *fgets(char *restrict buf,int n,FILE *restrict fp);char *gets(char *buf);Both return:buf if OK,NULL on end of file or error
也就是我们如果在输入流中输入Hello然后回车结束,且n不小于7,那么buf中的数据就是
#include<stdio.h>#define BUFFSIZE 4096intmain(){char buf[BUFFSIZE];fgets(buf,5,stdin);puts(buf);fgets(buf,10,stdin);puts(buf);return 0;}~
#include <stdio.h>int fputs(const char *restrict str,FILE *restrict fp);int puts(const char *str);Both return: non-negative value if OK,EOFon error
APUE学习笔记——5.5~5.7数据流的打开与读写的更多相关文章
- APUE学习笔记——10.9 信号发送函数kill、 raise、alarm、pause
转载注明出处:Windeal学习笔记 kil和raise kill()用来向进程或进程组发送信号 raise()用来向自身进程发送信号. #include <signal.h> int k ...
- APUE学习笔记3_文件IO
APUE学习笔记3_文件IO Unix中的文件IO函数主要包括以下几个:open().read().write().lseek().close()等.这类I/O函数也被称为不带缓冲的I/O,标准I/O ...
- apue学习笔记(第一章UNIX基础知识)
总所周知,UNIX环境高级编程是一本很经典的书,之前我粗略的看了一遍,感觉理解得不够深入. 听说写博客可以提高自己的水平,因此趁着这个机会我想把它重新看一遍,并把每一章的笔记写在博客里面. 我学习的时 ...
- APUE学习笔记-一些准备
从开始看APUE已经有快一个星期了,由于正好赶上这几天清明节放假,难得有了三天空闲假期可以不受打扰的学习APUE,现在已经看完前六章了,里面的大部分例程也都亲自编写,调试过了.但总觉得这样学过就忘,因 ...
- APUE学习笔记(2):lseek()练习与文件洞
对于lseek函数早在大一的C语言课上就有接触,但是几乎没有使用过,只记得是和文件偏移操作相关的 看了APUE上的示例,又使用od工具查看了内容,果然很神奇,很新鲜 figure3.2.c [c] # ...
- APUE学习笔记(1):APUE运行环境
APUE全称<Advanced Programming in the UNIX Environment>(UNIX环境高级编程) 书中例子大都使用作者自己写的头文件,所以需要解决一下,还好 ...
- apue学习笔记(第十七章 高级进程间通信)
本章介绍一种高级IPC---UNIX域套接字机制,并说明它的应用方法 UNIX域套接字 UNIX域套接字用于在同一台计算机上运行的进程(无关进程)之间的(全双工)通信.相比于因特网套接字,UNIX域套 ...
- apue学习笔记(第十六章 网络IPC:套接字)
本章将考察不同计算机(通过网络连接)上的进程相互通信的机制:网络进程间通信. 套接字描述符 正如使用文件描述符访问文件,应用程序用套接字描述符访问套接字. 许多处理文件描述符函数(如read和writ ...
- kinect学习笔记(四)——各种数据流
一.kinect开发的一个流程图 1.我们可以知道一个简单的框架就是几部分 (1)选择使用的kinect传感器 KinectSensor.KinectSensors[] (2)打开需要的数据流 _ki ...
随机推荐
- linux 性能测试工具Lmbench
Lmbench是一套简易,可移植的,符合ANSI/C标准为UNIX/POSIX而制定的微型测评工具.一般来说,它衡量两个关键特征:反应时间和带宽.Lmbench旨在使系统开发者深入了解关键操作的基础成 ...
- 20145211《网络渗透》MS12-004漏洞渗透
20145211<网络渗透>MS12-004漏洞渗透 一 实验原理 初步掌握平台matesploit的使用 有了初步完成渗透操作的思路 在这里我选择对的不是老师推荐的MS11_050,而是 ...
- office使用技巧
一.excel 1.在空格内换行:ALT+ENTER 2.打出勾:插入->符号
- 【读书笔记】《深入浅出nodejs》第五章 内存控制
海量请求+长时间运行 -> 内存控制 -> 一切资源高效循环利用 1. V8的垃圾回收机制与内存限制 在Node中通过JavaScript使用内存时,只能使用部分内存(64位系统下约1.4 ...
- MR案例:路径过滤PathFilter
问题描述:现有一批cookie日志,按照日期进行存放,如目录 “dir/2015-08-08” 下存放2015-08-08这一天的所有cookie.而目录 “/2015-08-08/” 下又根据数据文 ...
- 2_jenkins_git创建创建及项目构建
确保jenkins服务正常工作 进入WEB界面 查看git插件是否正常安装 "管理系统" --> "管理插件" "可选插件" 然后找到 ...
- Docker 坑点记录
1 关于 Docker Windows 文件夹问题 C:\Users Docker Machine tries to auto-share your /Users (OS X) or C:\Users ...
- Build hadoop 2.5.2 with Java8
mvn clean package -Pdist,native -DskipTests -Dtar -Dmaven.javadoc.skip=true
- hdu 4857 逃生 拓扑排序+逆向建图
逃生 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Descr ...
- 百度编辑器(ueditor)@功能之获取坐标
//获取百度编辑器的工具类 var domUtils = UE.dom.domUtils; //获取编辑器的坐标 var $ueditor_offset = $("#ueditor_0&qu ...