fdopen()和fileno()函数】的更多相关文章

转:http://book.2cto.com/201212/11763.html 文件描述字函数是流函数的初等函数,每一个流都与一个描述字相连.给定一个打开的文件描述字,可以用fdopen()函数为它创建一个流.反过来,已知一个流,也可以用fileno()函数得到它的文件描述字. #include <stdio.h>FILE *fdopen (int filedes, const char * opentype);int fileno (file * stream); fdopen()使描述字…
  fileno函数与ftruncate函数 2011-10-25 10:03:33 分类: LINUX fileno()函数 功    能:把文件流指针转换成文件描述符相关函数:open, fopen表头文件:#include 定义函数:int fileno(FILE *stream)函数说明:fileno()用来取得参数stream指定的文件流所使用的文件描述词返回值  :返回和stream文件流对应的文件描述符.如果失败,返回-1.范例:#include main(){     FILE …
open函数相关的:  /* open 是系统调用 返回的是文件句柄*/ #include <sys/stat.h> #include <fcntl.h> int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode); fopen函数相关的:   /* open是ANSIC标准中的C语言库函数,在不同的系统中应该调用不同的内核api  */ FILE…
我们可以使用select函数重写http://www.cnblogs.com/nufangrensheng/p/3587962.html中的str_cli函数,这样服务器进程一终止,客户就能马上得到通知.早先那个版本的问题在于:当套接口上发生某些事件时,客户可能阻塞于fgets调用.新版本改为阻塞于select调用,等待要么标准输入可读,要么套接口可读.下图展示了调用select所处理的各种条件. 客户的套接口上的三个条件处理如下: (i)如果对端TCP发送数据,那么该套接口变为可读,并且rea…
函数汇总: open().write().read().close() fopen().fwrite().fread().fclose() 一.什么是文件 在讲述文件操作之前,我们首先要知道什么是文件.看到这个问题你可能会感觉到可笑,因为对于用过计算机的人来说,文件是最简单不过的概念了,例如一个文本是一个文件,一个work文档是一个文件等.但是在Linux中,文件的概念还远不止于这些,在Linux中,一切(或几乎一切)都是文件.文件包括很多的内容,例如:大家知道的普通文件是文件,目录也是一个文件…
Linux中一切都是文件.如普通文件,目录,设备,管道等.操作这些文件有两种方式,调用系统函数和使用标准I/O库. 一.调用系统函数1.文件描述符:数值类型,表示打开的文件标识程序运行时,会首先打开3个文件描述符,0(标准输入文件),1(标准输出文件),2(标准错误文件) 2.系统调用常用函数1)open函数:打开文件原型为: int open(const char *path,int oflags) int open(const char *path,int oflags,mode_t mod…
一.什么是文件 在讲述文件操作之前,我们首先要知道什么是文件.看到这个问题你可能会感觉到可笑,因为对于用过计算机的人来说,文件是最简单不过的概念了,例如一个文本是一个文件,一个work文档是一个文件等.但是在Linux中,文件的概念还远不止于这些,在Linux中,一切(或几乎一切)都是文件.文件包括很多的内容,例如:大家知道的普通文件是文件,目录也是一个文件,设备也是一个文件,管道也是一个文件等等.对于目录.设备这些的操作也可以完全等同于对纯文本文件的操作,这也是Linux非常成功的特性之一吧.…
需要了解的概念 [数据流][缓冲区(Buffer)][文件类型][文件存取方式][借助文件指针读写文件] 需要理解的知识点包括:数据流.缓冲区.文件类型.文件存取方式 1.1 数据流: 指程序与数据的交互是以流的形式进行的.进行C语言文件的存取时,都会先进行“打开文件”操作,这个操作就是在打开数据流,而“关闭文件”操作就是关闭数据流 1.2 缓冲区(Buffer): 指在程序执行时,所提供的额外内存,可用来暂时存放做准备执行的数据.它的设置是为了提高存取效率,因为内存的存取速度比磁盘驱动器快得多…
标准I/O库是ISO C的标准,在很多操作系统上面都实现.Unix文件I/O函数都是针对文件描述符的,当打开一个文件的时候,返回该文件描述符用于后续的I/O操作.而对于标准I/O库,操作则是围绕流进行,当用标准I/O库打开或者创建一个文件时,使得一个流与文件相关联.标准I/O库使用了缓冲技术,使用缓冲的目的是尽可能减少使用read和write调用次数,但是效率不高.每次进行读写时候需要复制两次数据.第一次是在内核和标准I/O缓冲之间(调用read和write),第二次是在标准I/O缓冲区和用户程…
在学习和分析标准I/O库的同时, 可以重点与Linux的I/O系统调用进行比较. stdin. stdout和stderr都是FILE类型的文件指针, 是由C库静态定义的, 直接与文件描述符0. 1和2相关联, 所以应用程序可以直接使用它们.其中,stdin是不可写的, stdout是不可读的, 而stderr不仅不可读, 且没有缓存. I/O的缓存 C库的I/O接口对文件I/O进行了封装, 为了提高性能, 其引入了缓存机制, 共有三种缓存机制: 全缓存. 行缓存及无缓存. (1)全缓存一般用于…