一、文件描述符
对于内核,通过文件描述符来管理文件。什么是文件描述符?
在unix中,用open或者create建立几个文件时候,内核向进程返回一个整数,用来记录此文件。
以后对文件进行操作的时候,就用此文件描述符做引用。
二、open函数
open函数用于建立一个文件,函数返回文件描述符。
[cpp] view
plaincopy
#incl...
分类:
其他好文 时间:
2015-06-22 17:58:46
阅读次数:
128
1.read函数
调用read函数从文件去读数据,函数定义如下:
[cpp] view
plaincopy
#include
ssize_t read(int filedes, void* buff, size_t nbytes);
第一个变量代表文件描述符,如果是标准输入STDIN_FILENO
第二个变量代表从文件中读进bu...
分类:
其他好文 时间:
2015-06-22 17:54:59
阅读次数:
154
1、标准输入/输出/错误当shell启动,它继承三个文件:stdin、stdout、stderr,标准输入通常来自键盘,标准输出和标准错误通常是屏幕。标准输入/输出/错误的文件描述符为0、1、22、重定向操作符 重定向输出>> 追加输出2> 重定向错误...
分类:
其他好文 时间:
2015-06-22 06:19:13
阅读次数:
184
线程的概念C++中的线程的Text Segment和Data Segment都是共享的,如果定义一个函数,在各线程中都可以调用,如果定义一个全局变量,在各线程中都可以访问到。除此之外,各线程还共享以下进程资源和环境:
文件描述符
每种信号的处理方式
当前工作目录
用户id和组id
但是,有些资源是每个线程各有一份的:
线程id
上下文,包括各种寄存器的值、程序计数器和栈指针
栈空间
errno变量...
分类:
编程语言 时间:
2015-06-19 18:56:42
阅读次数:
416
UNIX的文件IO都是针对文件描述符的,而标准IO的操作则是围绕流进行的。当一个流最初被创建时,它并没有定向。若在未定向的流上使用一个多字节IO函数,则将该流的定向设置为宽定向;若在未定向的流上使用一个单字节IO函数,则将该流的定向设置为字节定向。
stdio.h定义了三个标准流,stdin、stdout和stderr,分别是标准输入、标准输出和标准出错。缓冲——标准IO库提供缓冲的目的是尽可能减...
分类:
其他好文 时间:
2015-06-19 18:47:32
阅读次数:
144
??
前一段时间学习了一下文件I/O的一些编程知识,忙于专业课方面的学习,一直没有总结,现对于文件I/O的总结如下图所示:
根据操作对象类型不同,将其分为了三个方面:文件I/O、文件和目录、标准I/O,虽然将其分为了三个部分,但是其中还是相互联系的。
文件I/O:首先对于文件I/O一些相关操作需要有文件描述符作为参数,于是需要经过打开或创建操作来返回一个文...
分类:
其他好文 时间:
2015-06-19 16:51:51
阅读次数:
116
lsof(listopenfiles) 是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以 如传输控制协议(TCP)和用户数据报协议(UDP)套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论.....
分类:
系统相关 时间:
2015-06-19 11:44:08
阅读次数:
163
Unix系统中的大多数文件IO只需用到5个函数:open、read、write、lseek以及close。这些函数是不带缓冲的IO,不带缓冲指的是每个read和write都调用内核中的一个系统调用,它们不是ISO/C的组成部分,而是POSIX和SUS的东西。文件描述符——对于内核而言,所有打开的文件都通过文件描述符引用。文件描述符是一个非负整数,按照惯例,文件描述符0、1、2分别表示的是标准输入、标...
分类:
其他好文 时间:
2015-06-18 13:38:06
阅读次数:
182
进程间通信:
1使用管道进行进程间的通信
(1)有名管道
mkfifo xxx.pipe
(2) 无名管道
int pipe(int pipefd[2]);
文件描述符 pipefd[0]代表读端,pipefd[1]代表写端
2. 使用共享内存实现进程间的通信
步骤:
获取key值,使用ftok函数
创建、获取共享内存,使用shmget函数
接挂共享内存,使用shma...
分类:
其他好文 时间:
2015-06-17 15:29:55
阅读次数:
133
简介 ?epoll是Linux内核中的一种可扩展IO事件处理机制,最早在Linux2.5.44内核中引入,可被用于代替POSIX select和poll系统调用,并且在具有大量应用程序请求时能够获得较好的性能(此时监控的文件描述符数目非常...
分类:
其他好文 时间:
2015-06-16 00:02:28
阅读次数:
245