由于匿名管道使用的是文件描述符,所以我们只能用read和write对其进行读写。因为标准读写函数都是基于文件指针的。当read成功时,返回值为读到的字符数。当遇见文件结尾时,返回0(也就是什么都读不出来了)。出错,返回-1。—> 参考 man 2 read当write成功时,返回值为写入的字符数。返...
分类:
其他好文 时间:
2014-09-05 18:04:41
阅读次数:
221
对于dup和fork函数来说,前者是复制一个文件描述符,后者是复制进程,同时相关的文件信息也会被复制。
一、对于Dup
之前已经知道,对于一个进程来说,有一个files_struct来管理所有的相关文件,最终的反应形式其实就是一个文件数组而已:
所谓文件描述符就是数组下标...
分类:
系统相关 时间:
2014-09-04 15:00:29
阅读次数:
280
进程读文件之前,需要先打开文件,进程打开文件的时候,Linux会把这个文件关联到一个数字(称之为文件描述符),文件描述符是打开的文件在进程表中的一个索引。每个进程都有自己的一组已经打开的文件和各自的文件描述符,一旦打开某个文件,进程就可以通过文件描述符进行读写该文件。当进程不在需要文件的时候,它必须关闭文件,并且释放文件描述符。
Linux进程在启动的时候会打开3个文件:标准输入(文件描述符0),标准输出(文件描述符1),标准错误(文件描述符2)。
子进程会继承父进程的文件描述符,可以使用命令
ls /p...
分类:
其他好文 时间:
2014-09-03 22:44:37
阅读次数:
241
1精简安装包(最小化安装)2禁用开机不需要的服务3.优化内核参数/etc/sysctlconf4.配置国内高速yum源5增加系统文件描述符,堆栈等配置6禁用root远程登陆,修改ssh为特殊端口7有外网ip的开机要开启配置防火墙仅对外开启需要提供服务的端口,配置或关闭SELINUX8清除无用的默认系..
分类:
系统相关 时间:
2014-09-03 11:26:27
阅读次数:
233
lienhua342014-08-23UNIX 提供了两个函数 dup 和 dup2 用于复制一个现存的文件描述符。#include int dup(int filedes);int dup2(int filedes, int filedes2);返回值:若成功则返回新的文件描述符,如出错则返回-1...
分类:
其他好文 时间:
2014-08-28 23:59:06
阅读次数:
449
NIO 设计背后的基石:反应器模式,用于事件多路分离和分派的体系结构模式。 反应器(Reactor):用于事件多路分离和分派的体系结构模式 通常的,对一个文件描述符指定的文件或设备, 有两种工作方式:?阻塞?与非阻...
分类:
编程语言 时间:
2014-08-28 22:50:56
阅读次数:
331
lienhua342014-08-27内核使用三种数据结构表示打开的文件,分别是文件描述符表、文件表和 V 节点表。(1) 每个进程在进程表中都有一个记录项,记录项中包含有一张打开文件描述符表,每个描述符占用一项。与每个文件描述符相关联的是: (a) 文件描述符标志。 (b) 指向一个文件表项的指针...
分类:
其他好文 时间:
2014-08-27 23:26:58
阅读次数:
297
如果oracle进程已经关闭,无法再通过利用ora_进程跟踪文件句柄进行恢复,那么还有无方法来对误删除的文件进行恢复呢?下面介绍一下用第三方软件进行恢复
--首先确保已经安装了e2fsprogs包
[root@ora10g ext3grep-0.10.2]# rpm -qa | grep e2fsprogs
e2fsprogs-1.39-20.el5
e2fsprogs-devel...
分类:
其他好文 时间:
2014-08-27 16:46:37
阅读次数:
295