转:
http://arganzheng.iteye.com/blog/982214
关于文件描述符和句柄
今天jojo突然问我们:“什么叫做句柄?”。我对句柄不是很清楚(Win32下没有怎么编过程),但是我对文件描述符是比较清楚的。但是我觉得应该是差不多的,所以我就这么回答她了:“句柄应该类似与Unix下的文件描述符,是一个内核对象标识。根据这个标识,进程可以访问相应的内核对象。至于为什么不直接返回内核对象地址,原因我想有两个:1. 内核对象驻留在内核地址空件,而进程没有权限访问内核地址空间。C标准库中的File对象返回指针,那是因为它是用户库。2. 不给定内存地址,有利于内核(用户进程也一样)做内存空间调整和优化,而保持对外部透明。很多数据库存储引擎,就是这么实现的——一种称之为 slotted page的技术。”晚饭的时候跟几个同事一起讨论了一下,发现很多人都认死数组偏移量其实就是地址,在编译器实现上是这样的,但是对于应用程序来说却不是这样的。
分享到:
相关推荐
- 使用`dup`和`dup2`系统调用可以复制文件描述符,使得多个描述符指向同一句柄。 - `close`系统调用用于关闭文件描述符,释放系统资源。 5. 文件描述符在Java编程中的应用: 在Java中,虽然通常不直接处理文件...
在某些操作系统中,如Linux,文件描述符就是文件号的一种形式。 2. **文件句柄**:文件句柄是操作系统分配给进程的一个唯一标识,用于访问和管理特定的文件。它可能是一个整数、指针或者其他数据结构,由操作系统...
问题过去有段时间了,忘记当时怎么想到是超过文件描述符限制了。大概是根据句柄的值或者返回的错误码了。 嗯。linux下文件描述符最大限制默认最大为1024,通过 [root@localhost ~]# ulimit -n 1024 这个命令可以...
### Linux句柄知识点详解 #### 一、理解Linux句柄 在Linux系统中,“句柄...综上所述,Linux中的“句柄”概念涵盖了进程标识符和文件描述符等关键资源。正确理解和利用这些资源对于高效管理和优化Linux系统至关重要。
简单地说,一个文件描述符可以和一个文件挂钩,一旦挂钩就可以通过取地址运算符&获得该文件的句柄,比如&0就可以获得STDIN设备在内存中的句柄(设备在系统中也被当做文件处理),可以这样理解,如果是一个shell中的...
描述符包含了关于文件或流的信息,如文件句柄、缓冲区地址、读写位置以及I/O操作的状态。它们为Symbian的异步I/O模型提供了基础,使得程序可以在等待I/O操作完成时继续执行其他任务,从而提高了系统的整体效率。 ...
在Linux中,文件描述符(File Descriptor)是句柄的一种具体形式,它是进程用来访问打开文件的一个索引值。每个进程都有一个文件描述符表,包含了所有已打开文件的句柄。文件描述符从0开始,通常0、1、2分别对应标准...
总结来说,`shm_linux共享句柄`涉及的是Linux环境下利用`mfd_create`高效实现共享内存的方法,它简化了内存共享的流程,提高了数据交换的速度,并且通过文件描述符提供了更多的控制和管理可能性。`shmsend.c`和`...
基于linux ,使用select检测串口句柄事件,同时进行超时判断的串口485读写操作。为高效可控的linux串口操作例程。tcsetattr,tcflush,select,ioctl,gettimeofday。485收发方向切换。
每个运行中的进程都有一个对应的目录在 `/proc` 下,如 `/proc/<pid>/fd`,这里的 `<pid>` 是进程ID,`fd` 目录下的文件就是该进程的文件描述符,它们实际上也是句柄的一种形式。 在编程语言中,查看句柄的操作通常...
同时,对象的自身安全描述符(Security Descriptor)也会参与权限检查,它包含了对象的所有者和访问控制列表(ACL),进一步限制了哪些用户或进程可以访问。 除了基本的访问权利,Windows还提供了高级的权限控制...
1. **创建epoll实例**:通过调用`epoll_create()`函数创建一个`epoll`实例,返回一个表示`epoll`句柄的文件描述符。 2. **注册事件**:使用`epoll_ctl()`函数向`epoll`实例中添加或修改文件描述符的事件类型,如`...
file-nr 文件中包含三个数字:第一个数字表示已经分配了的文件描述符数量,第二个数字表示空闲的文件句柄数量,第三个数字表示能够打开文件句柄的最大值(跟 file-max 一致)。 此外,Linux 系统中还存在 ulimit ...
通过这个API,开发者可以获取句柄的类型、安全描述符、属性等详细信息,进而实现枚举和管理操作系统中的对象。 4. **Mutex**:在多线程编程中,Mutex是一种同步机制,用于保护共享资源免受并发访问。当一个线程获得...
在UNIX系统中,文件I/O主要通过文件描述符来实现,而在Windows系统中,它被称为文件句柄。文件描述符是一个整数,用于唯一标识进程中的一个打开文件。在UNIX中,0、1、2三个描述符分别预留给标准输入、标准输出和...
"分析句柄"在计算机编程中通常是指程序用于标识和操作对象的一个特定值,这个值可以是内存地址、文件描述符或其他资源的标识。在易语言中,分析句柄可能用于处理各种系统调用、文件操作、网络通信等场景。分析句柄...
文件句柄 文章目录文件句柄查看用户级别(nofile)单个进程级别(nr_...关于什么是文件句柄,这里不做讨论,其实linux中没有文件句柄,叫做文件描述符fd 超过最大句柄限制,报错:java.io.IOException: Too many open