Operating system 操作系统如何创建唯一的文件句柄?

Operating system 操作系统如何创建唯一的文件句柄?,operating-system,Operating System,创建文件时,向操作系统提供文件名,然后 它创建文件并返回句柄 我很想知道它是如何产生的 操作系统是否对文件名进行某种哈希处理以创建唯一的文件句柄 还是会增加已创建文件的数量并将其作为文件句柄返回?文件句柄在给定时间内仅在一个进程内是唯一的。在Linux上,我认为它是一个简单的递增计数器。我认为Windows会将内存地址返回给有关文件的信息块(信息块的结构是操作系统内部的,因此不可能直接处理它)。不,它是操作系统内核中数组的索引,是该进程特有的。文件句柄通常只是小整数。文件句柄(文件描述符)只是一

创建文件时,向操作系统提供文件名,然后 它创建文件并返回句柄

我很想知道它是如何产生的

操作系统是否对文件名进行某种哈希处理以创建唯一的文件句柄
还是会增加已创建文件的数量并将其作为文件句柄返回?

文件句柄在给定时间内仅在一个进程内是唯一的。在Linux上,我认为它是一个简单的递增计数器。我认为Windows会将内存地址返回给有关文件的信息块(信息块的结构是操作系统内部的,因此不可能直接处理它)。

不,它是操作系统内核中数组的索引,是该进程特有的。文件句柄通常只是小整数。

文件句柄(文件描述符)只是一个对于特定进程来说是唯一的数字。例如,标准输入、输出和错误具有fds(0、1、2)。在linux中,您可以在
/proc/PID/fd
中检查进程的文件描述符,其中
PID
是进程id

以下是一个例子:

$ pidof executable
4711
$ ls -l /proc/4711/fd
...
$ # Use 'lsof' to show file descriptor opened by this process:
$ lsof -p 4711
...