more指令的实现及文件操作函数
来源:互联网 发布:urllib json 编辑:程序博客网 时间:2024/06/05 02:44
Unix中的more指令是用作分页显示大量信息,并能够进一步接收用户的指令来进行后续显示的命令。使用其可以直接more也可以用管道重定向。可接收的指令有q(退出),空格(新一页)及回车(新一行)。同时还有阅读百分比等信息。
以下用c将其简单实现:
在其中使用了文件读取函数fgetc,fputc等,此类函数通过文件指针直接对文件的内容进行读写,感觉挺有用的,简单介绍一下。
char fgetc(FILE *fp)
是从文件指针当前位置读取一字符,成功则返回字符,同时指针后移一位,结束时返回EOF,值为-1。(疑惑:系统如何判定是第一次操作文件的?初始化时直接将指针指向文件开始位置么?对文件进行fgetc或fgets操作后,如果将此指针用于其他函数是否会出错?)
char fputc(char ch, FILE *fp)
将ch字符输出到文件当前位置,成功则返回ch,同时指针后移1位,结束返回EOF。
char *fgets(char*str, int n, FILE*fp)
从fp所指文件当前位置读入最多n-1个字符,最后自动加上'\0'以结束字符串存储进str数组中,若在此过程中遇到换行或者结束符时则提前结束读取过程。
Notice:此类文件操作函数属于缓冲处理函数,将ch或str写入文件指针fp的过程实际上只是写入了缓冲区(需考证),待程序正常结束后写入文件中,若程序未正常结束,则ch或str并不会写入到文件中。
程序中还用到文件的操作函数fopen,fclose等。此函数与系统调用函数open,close函数不同,通过文件指针FILE *对文件操作,而不是文件套接字,此中区别及优劣可以另外讨论,此处记录下我之前的疑问点,主要是指针方面。
函数FILE *fopen(const char *path, const char*mode),程序中用到了fp=fopen(*++argv, "r")的表示方法。argv[]是包含命令中参数的数组,因此argv实际上是一个二级指针,其内数组的每格存放一个指向变量的指针。因此在使用fopen时。fp=fopen(argv[x],"r")或fp=fopen(*++argv,"r"),用argv自加的形式可减少一层循环嵌套。
0 0
- more指令的实现及文件操作函数
- more指令的简单实现
- 命令行模式下的指令及多文件操作方式
- linux文件操作指令的c语言代码实现
- 文件操作,及文件操作时的权限设置,快速实现文件拷贝,C语言常用IO函数
- 自己写的unix文件拷贝指令cp实现函数
- 对文件操作的指令
- PB利用API-SHFileOperation 文件操作函数 实现多文件及文件夹的删除复制等操作
- 使用文件操作函数实现简单的CP、cat、size功能及读取文件内容初始化结构体
- 指令及操作数的寻址方式
- MAC 如何远程服务器上进行简单 文件的上传下载及指令操作
- linux学习笔记1——指令的基本格式及基本文件操作
- Linux操作系统下的 “文件操作指令”及“gdb调试命令”
- linux 下常用的文件操作指令
- ubuntu 下的文件操作指令
- Matlab的函数及指令一览表
- ofstream ifstream 文件操作及一些有用的函数
- linux下的文件操作函数及creat用法
- 【Unity】CPU优化
- Html table td里使用overflow:hidden无效解决方法
- 白话Dubbo——Dubbo框架说明与当当网Duboox REST
- Shutting down interface eth1: Error: Device ‘eth1′ NetworkManager/Devices/1 disconnecting failed: Th
- Android 设计中的.9.png
- more指令的实现及文件操作函数
- 计算几何知识
- Android strings.xml中定义字符串显示空格
- Windows Phone 有背景的按钮
- Java Swing图形化用户界面编程
- 欢迎使用CSDN-markdown编辑器
- android socket编程
- http://blog.chinaunix.net/uid-21501855-id-4490453.html
- JSP+EL表达式学习