基本概念:子进程继承父进程环境和上下文的大部分内容的拷贝,其中就包括文件描述符表。父进程fork出来的子进程,复制父进程的文件描述符。这些文件描述符fd是独立的,但是文件描述符指向的系统文件表项是唯一的,即是struct file本身唯一。同理,fork得到的子进程和父进程共享同一个socket(套...
分类:
系统相关 时间:
2015-04-24 18:22:18
阅读次数:
627
管道
Linux管道(pipe)提供一种单向(半双工)的进程间通讯机制。管道有一个读端和一个写端。从写端写入的数据可以重读端读出来。函数pipe()创建一个管道,返回两个文件描述符,fd[0]是读端,f[1]是写端。如下图
管道的读写可以使用Linux标准IO操作接口进行,例如read、write等。从图1不难看出,数据一直缓存在内核中直到被读取出来。
单个进程的管道几乎没有任何用处...
分类:
其他好文 时间:
2014-12-02 00:10:17
阅读次数:
301
stat, fstat, fstatat 和 lstat函数:stat函数返回与pathname命名文件相关的信息结构;fstat函数返回已在文件描述符fd打开文件的相关信息;lstat函数与stat函数类似,但当命名文件是一个符号链接时,返回该符号链接的相关信息;fstatat函数为相对于当前打开...
分类:
其他好文 时间:
2014-11-27 23:34:32
阅读次数:
370
根据上篇文章,整个恢复过程可以使用脚本完成,既节约时间,也增加恢复的成功率。这个方法对误删的数据文件,包括onlineredo,undo,controlfile,system或普通数据文件均有效。整个过程分两部分:第一部分是通过tail命令hold住文件描述符FD,然后建立数据文件的softlink。完成..
分类:
数据库 时间:
2014-11-05 15:09:31
阅读次数:
329
如何管理多个连接?“我想同时监控一个以上的文件描述符(fd)/连接(connection)/流(stream),应该怎么办?”使用select()或poll()函数。注 意:select()在BSD中被引入,而poll()是SysVSTREAM流控制的产物。因此,这里就有了平台移植上的考虑:纯粹的B...
分类:
其他好文 时间:
2014-10-17 10:09:54
阅读次数:
171
近日在写一个linux的串口程序,发现大多数情况下数据接收没问题,但是有时却有问题。主要是接收的字符串中包含有0x03这个字符,会造成与它相邻的字符同时也接收不到,搞了好久才发现这个错误。查找资料后发现许多ARM板也存着这个问题,存在问题的字符串还包括0x13、0x0D等特殊含义的字符。
解决方法
方法比较简单,在接收数据前,对串口的文件描述符fd进行如下设置,
struct termio...
分类:
系统相关 时间:
2014-09-24 13:24:07
阅读次数:
327
在了解dup用法之前,需要对linux的文件节点有一个认识。
内核有3个数据结构来表示进程打开的文件,dup是系统提供的一个API可以直接操作这三个数据结构之间的关系。
(1)每个进程在进程表当中都有一个记录项,记录项中包含一张表格,记录了所有当前进程打开的文件,可以将其想象成为一个key-value的映射关系,key为文件描述符fd,对于每个进程来说,fd从0开始向后排,value为指向文件...
分类:
其他好文 时间:
2014-09-09 18:20:19
阅读次数:
220
1. read函数1) 函数原型: #include ssize_t read(int fd, void *buf, size_t count);2) 函数功能: read系统调用从文件描述符fd指向的文件中,读取count个字节到buf中。3) 参数说明: fd:文件描述符 buf:保存读入...
分类:
其他好文 时间:
2014-08-17 01:02:41
阅读次数:
214
1. dup 函数 1.1 dup 函数用来复制一个文件描述符,复制后的文件描述符可以正常使用(见例1)。dup函数返回当前文件描述符表中一个最小的可用的文件描述符(Linux下分配文件描述符的规则是:寻找最小可用),这个过程由系统来完成。dup函数成功执行后,两个文件描述符fd_1 和 fd_2....
分类:
系统相关 时间:
2014-07-24 05:01:18
阅读次数:
374
最近由于公司在做数字电视,播放器和模块由供应商打包一起卖,驱动调能了,可是播放器要硬件解码,和平台差异,原厂又没有相关文档,就自己试着看了一个系统的播放器流程,顺便整理了一下,也方便以后查询,希望对播放器硬解码的开发能起到点作用。由于对视频也不了解,所以难免有不少错误,欢迎高手指导。
1: 由文件或者设备来创建一个dataSource(DataSource) (其中可以是文件描述符fd, u...
分类:
移动开发 时间:
2014-07-03 13:31:45
阅读次数:
251