UNIX环境编程初步认识——文件和I/O



前一段时间学习了一下文件I/O的一些编程知识,忙于专业课方面的学习,一直没有总结,现对于文件I/O的总结如下图所示:

根据操作对象类型不同,将其分为了三个方面:文件I/O、文件和目录、标准I/O,虽然将其分为了三个部分,但是其中还是相互联系的。

文件I/O:首先对于文件I/O一些相关操作需要有文件描述符作为参数,于是需要经过打开或创建操作来返回一个文件描述符。基本操作有读写、偏移和关闭等。同时还包括文件描述符的获取,将缓冲区同步至硬盘,改变文件的属性和其他的杂项处理等。

文件和目录:对于这一部分,将其分为五项:权限问题、文件长度,文件链接、时间属性和目录操作。其实其中还一项是用来返回文件信息结构的,文件的信息结构中包括了大多数的文件属性信息,将其作为一个结构来管理。权限部分的操作有测试、屏蔽字设定、更改文件的访问权限和更改文件的用户和组ID等;文件的长度介绍中说明了文件空洞问题和有关文件截断的操作函数。文件链接有两种,分别为硬链接和符号链接,其中介绍了有关其创建和相关的其他操作。文件的时间属性中包括多项,其中重点说明了有关访问时间和修改时间的介绍。对于目录的操作有创建、删除、读和更改当前工作目录等。

标准I/O:对于标准I/O,其中介绍了流的概念,当文件打开就已经创建了一个流,所以很多关于流的操作和文件相同,针对流的操作有:定向和缓冲概念;同时在其中还介绍了有关流的读写中方式的介绍,介绍了一次输入输出一行和一次输入输出一个结构的相关操作方法。同时介绍了关于格式化I/O的输入输出操作。对于标准I/O缺少一个整体的认识,总是感觉无法将很多知识柔和到一起,也许是对流的概念和标准I/O或者是整个I/O操作的认识和理解不到位的问题。

从整体来看,对文件和I/O的操作还只是一个初步的认识,对于I/O读写操作和整体的环境还缺少一个宏观的认识,知识柔和的还不够全面和集中。问题是由于自己对操作系统的I/O和文件概念的认识还是太抽象,将抽象的问题具体还是一个加深认识的过程和体现,将具体的问题抽象化是一个总体提升的过程,两者都需要做好。还有很多东西需要学习,给自己加油吧!!呵呵……..

时间: 2024-11-11 07:36:26

UNIX环境编程初步认识——文件和I/O的相关文章

UNIX环境编程初步认识——进程

 前段时间学习了一些关于进程的一些知识,其中分为了三个部分:进程环境.进程关系.进程控制.下边是我做的思维导图和相关理解.由于缺乏实践,对于其中很多地方理解的还不够深入. 思维导图: 进程环境: 1.启动/终止:关于进程的环境,首先是对于进程整个环境的总体认识,通过分析C语言的启动和终止,讲解了关于进程是如何启动和终止的.2.环境表:说明了对于每个程序都会收到一张环境表.3.空间分配:对于空间分配,其中包括:对C程序中关于存储空间的布局安排,共享库的由来和执行方法,一些关于存储空间分配的函数

UNIX环境编程学习——反思认识

 学习情况: 有关UNIX系统环境编程的学习时间用来很长的时间,但是感觉效果还是不是太好,在中间经过了期末考试,用来很长的时间用来学习专业课,就将该过程的学习放到了一边上,放假以后又回家造成了中间的学习时间打的很散,又由于自己的水平还是十分有限的,所以该过程的学习效果感觉不太好,时间的观念在脑中还是不够强烈,整个过程中总体来说只是在总体上了解了一个大概,实践还差的很远. 学习期间博客: 1.UNIX环境编程初步认识--编程环境搭建 2.UNIX环境编程初步认识--文件和I/O 3.UNIX环

unix环境编程 文件操作

1.  文件的打开读写 关闭 int open(const char *pathname,int flag,-)   打开一个文件 成功则返回文件描述符,若出现则返回-1 flag可以取下面的常量 O_RDONLY  只读打开 O_WRONLY  只写打开 O_RDWR    读写打开 其它的常量 O_APPEND,O_CREAT,O_EXCL,O_TRUNC,O_NOCTTY,O_NONBLOCK是可选的. int create(const char *pathname,mode_t mode

unix环境编程 目录操作

1.目录操作有 mkdir(constchar *pathname,mode_t mode) 创建目录,成功则返回0,若出错则返回-1 int rmdir(const char *pathname) rmdir可以删除一个空目录,成功则返回0,若出错返回-1 DIR *opendir(const *pathname) 成功则返回指针,若出错则返回NULL struct dirent *readdir(DIR *dp) 若成功则返回指针,出处则返回NULL void rewinddir(DIR *

unix环境编程 tcp通信

TCP通信的过程为: 一. 服务器端: 1.socket(int domain,int type,int protocol):建立套接字: 2 .bind(int sockid,struct sockaddr *addrp,socklen_t addrlen):绑定端口和地址信息: 3.listen(int sockid,int qsize):监听套接字; 4.fd=accept(int sockid,struct sockaddr *callerid,socklen_t *addrlenp):

UNIX环境编程学习笔记(6)——文件I/O之判断文件类型

lienhua342014-09-01 1 文件类型 我们平时最常接触的文件类型有普通文件(regular file)和目录(di-rectory file),但是 UNIX 系统提供了多种文件类型: (1) 普通文件(regular file) 这种文件包含了某种形式的数据,这些数据无论是文件还是二进制对于 UNIX 内核而言都是一样的.对普通文件内容的解释有处理该文件的应用程序进行. (2) 目录文件(directory file) 目录文件包含了其他文件的名字以及指向与这些文件有关信息的指

UNIX环境编程笔记

1.程序1-5 /* 复制任一UNIX普通文件 */ ①ferror: 函数名,在调用各种输入输出函数(如 putc.getc.fread.fwrite等)时,如果出现错误,除了函数返回值有所反映外,还可以用ferror函数检查. 它的一般调用形式为 ferror(fp):如果ferror返回值为0(假),表示未出错.如果返回一个非零值,表示出错.应该注意,对同一个文件 每一次调用输入输出函数,均产生一个新的ferror函 数值,因此,应当在调用一个输入输出函数后立即检 查ferror函数的值,

APUE《UNIX 环境编程》读后感

今天终于把APUE前17章全部看完了,基本上主要知识就在这些章节里. 之前看完<unix/linux编程实践教程>时,有一种豁然开朗.心旷神怡的感觉,在代码级别了解了linux很多系统机制,和一直不理解编程细节,而且对UNIX编程的整体知识结构有了很好的把握. APUE是公认的经典,事无巨细的把每个知识讲解很透,还有很多细心的提示.但是看起来的过程并不觉得那么美好,原因有以下几点: 1.译者那糟糕的水平!很多句子根本就不是中国人能说口的.无奈英语烂,顶多能看看man的水平,只能看中文版了.这本

UNIX环境编程学习笔记(4)——文件I/O之dup复制文件描述符

lienhua342014-08-23 UNIX 提供了两个函数 dup 和 dup2 用于复制一个现存的文件描述符. #include <unistd.h> int dup(int filedes); int dup2(int filedes, int filedes2); 返回值:若成功则返回新的文件描述符,如出错则返回-1. 由 dup 函数返回的文件描述符一定是当前可用文件描述符中的最小描述符.用 dup2 函数则可以通过参数 filedes2 指定目标文件描述符.如果filedes2