我们正在努力恢复Google Play商店上的Unionpedia应用程序
传出传入
🌟我们简化了设计以优化导航!
Instagram Facebook X LinkedIn

文件描述符

指数 文件描述符

文件描述符(File descriptor)是计算机科学中的一个术语,是一个用于表述指向文件的引用的抽象化概念。.

目录

  1. 23 关系: 句柄參照子进程安全增强式Linux匿名管道Berkeley套接字C POSIX libraryCygwin管道 (Unix)线程网络文件系统Epoll遠程文件共享FDFork (系统调用)Here文档InotifyMS-DOS APIProcfsSync (Unix)Windows对象管理標準串流沙盒 (電腦安全)

句柄

在程序设计中,句柄(handle)是Windows操作系统用来标识被应用程序所建立或使用的对象的整数。其本质相当于带有引用计数的智能指针。当一个应用程序要引用其他系统(如数据库、操作系统)所管理的内存块或对象时,可以使用句柄。.

查看 文件描述符和句柄

參照

在電腦科學中,參照(reference)是指一個可以讓程式間接存取於電腦記憶體或其他儲存裝置中一特定資料的值,該數據可以為變數或記錄。 參照和資料本身不同。一般而言,參照會是資料儲存於記憶體或儲存裝置中的實體位址。因此,參照亦常被稱為該資料的指標或位址。不過,參照也被用來指資料位址和某一固定「基準」位址的偏移值,或是陣列的索引。 參照的概念和其他如關聯鍵或識別字之類用來識別特定資料項目的值不同,後者只能透過資料庫表中的尋找運算,來存取資料。 參照被廣泛用於程式設計之中,尤其是用於將大量或易變的資料有效地透過參數傳給子程式,或在不同的用途中共享此類資料。此外,參照也能指向一個包含其他資料之參照的變數或記錄,此一概念為間接定址及連結資料結構(如連結串列)之基礎。.

查看 文件描述符和參照

子进程

在计算机领域中,子进程為由另外一個进程(对应称之为父进程)所创建的进程。子进程继承了父进程的大部分属性,例如文件描述符。.

查看 文件描述符和子进程

安全增强式Linux

安全增強式Linux(SELinux, Security-Enhanced Linux)是一个Linux内核的安全模组,其提供了访问控制安全策略机制,包括了美国国防部风格的强制访问控制(Mandatory Access Control, MAC)。 SELinux是一系列添加到多个Linux发行版的内核修改与用户空间工具。其软件架构力图从安全策略中分离出执行安全决策并优化涉及执行安全策略的软件。奠基SELinux的核心概念可以追溯回美国国家安全局(NSA)的一些早期项目。.

查看 文件描述符和安全增强式Linux

匿名管道

匿名管道是计算机进程间的一种单工先进先出通信机制。全双工通信通常需要两个匿名管道。 典型场景为父进程创建匿名管道,然后创建一批子进程继承了这个匿名管道。由于这是未命名的管道,只能在本地计算机中使用,而不可用于网络间的通信。匿名管道并不支持异步读、写操作。.

查看 文件描述符和匿名管道

Berkeley套接字

柏克萊套接字(Internet Berkeley sockets) ,又稱為BSD 套接字(BSD sockets)是一種应用程序接口(API),用於網際插座( socket)與Unix域套接字,包括了一个用C语言写成的应用程序开发库,主要用于实现进程间通讯,在计算机网络通讯方面被广泛使用。 Berkeley套接字(也作BSD套接字应用程序接口)刚开始是4.2BSD Unix操作系统(于1983发布)的一套应用程序接口。然而,由于AT&T的专利保护着UNIX,所以只有在1989年伯克利大学才能自由地发布自己的操作系统和网络库。 Berkeley套接字应用程序接口形成了事实上的网络套接字的标准精髓。 大多数其他的编程语言使用与这套用C语言写成的应用程序接口 类似的接口。 这套应用程序接口也被用于Unix域套接字(Unix domain sockets),后者可以在单机上为进程间通讯(IPC)的接口。 这种基于流的传输层接口(TLI)为套接字应用程序接口提供了一种选择。 不过,最近提供TLI应用程序接口的的系统同时也提供Berkeley套接字应用程序接口。.

查看 文件描述符和Berkeley套接字

C POSIX library

C POSIX library是C语言的POSIX系统下的标准库。包含了一些在C语言标准库之外的函数。.

查看 文件描述符和C POSIX library

Cygwin

Cygwin是许多自由软件的集合,最初由Cygnus Solutions开发,用于各种版本的Microsoft Windows上,运行类UNIX系统。Cygwin的主要目的是通过重新编译,将POSIX系统(例如Linux、BSD,以及其他Unix系统)上的软件移植到Windows上。Cygwin移植工作在Windows NT上比较好,在Windows 95和Windows 98上,相对差劲一些。目前Cygwin由Red Hat等负责维护。.

查看 文件描述符和Cygwin

管道 (Unix)

在类Unix操作系统(以及一些其他借用了这个设计的操作系统,如Windows)中,管道(Pipeline)是一系列将标准输入输出链接起来的进程,其中每一个进程的输出被直接作为下一个进程的输入。 每一个链接都由匿名管道实现。管道中的组成元素也被称作。 这个概念是由道格拉斯·麥克羅伊为Unix 命令行发明的,因与物理上的管道相似而得名。.

查看 文件描述符和管道 (Unix)

线程

线程(thread)是操作系统能夠進行運算调度的最小單位。它被包含在进程之中,是进程中的實際運作單位。一条线程指的是进程中一个单一顺序的控制流,一個进程中可以並行多個线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。 线程是独立调度和分派的基本单位。线程可以为操作系统内核调度的内核线程,如Win32线程;由用户进程自行调度的用户线程,如Linux平台的POSIX Thread;或者由内核与用户进程,如Windows 7的线程,进行混合调度。 同一进程中的多条线程将共享该进程中的全部系统资源,如虚拟地址空间,文件描述符和信号处理等等。但同一进程中的多个线程有各自的调用栈(call stack),自己的寄存器环境(register context),自己的线程本地存储(thread-local storage)。 一个进程可以有很多线程,每条线程并行执行不同的任务。 在多核或多CPU,或支持Hyper-threading的CPU上使用多线程程序设计的好处是显而易见,即提高了程序的执行吞吐率。在单CPU单核的计算机上,使用多线程技术,也可以把进程中负责I/O处理、人机交互而常被阻塞的部分与密集计算的部分分开来执行,编写专门的workhorse线程执行密集计算,从而提高了程序的执行效率。.

查看 文件描述符和线程

网络文件系统

网络文件系统(Network File System,縮寫作 NFS)是一种分布式文件系统协议,最初由Sun Microsystems公司开发,并于1984年发布。其功能旨在允许客户端主机可以像访问本地存储一样通过网络访问服务器端文件。 NFS和其他许多协议一样,是基于開放網路運算遠端程序呼叫(ONC RPC)协议之上的。它是一个开放、标准的RFC协议,任何人或组织都可以依据标准实现它。.

查看 文件描述符和网络文件系统

Epoll

於Linux 2.5.44首度登場的epoll是Linux核心的可擴展I/O事件通知機制。它設計目的旨在取代既有POSIX select(2)與poll(2)系統函式,讓需要大量操作檔案描述子的程式得以發揮更優異的性能(舉例來說:舊有的系統函式所花費的時間複雜度為O(n),epoll的時間複雜度O(log n))。epoll與FreeBSD的kqueue類似,底層都是由可組態的作業系統核心物件建構而成,並以檔案描述符(file descriptor)的形式呈現於使用者空間。.

查看 文件描述符和Epoll

遠程文件共享

遠程文件共享(RFS)是一種由AT&T公司在1980年代開發的分散式檔案系統。在UNIX System V的版本3(SVR3)中第一次公開。它後來也包括在AT&T的UNIX System V版本4,但同一版本內含的網路檔案系統(NFS)具有更好的互相操作性,因此RFS較少被使用。AT&T的UNIX System V版本4的一些授權版本裡並不支援遠程文件共享,昇陽電腦在Solaris的2.4版之後也將遠程文件共享的功能從中移除。 與網路檔案系統相比,它具有非常不同的設計決定。比起將重點放在故障出現時的操作可靠性,遠程文件共享更傾向於試圖在整個網絡中保護並維持UNIX語義。與網路檔案系統(在UNIX System V版本4之前)不同,遠程文件共享伺服器將保持追踪任何被任意進程鎖住的文件,其被打開次數的狀態等等。遠程文件共享是由當時AT&T所屬貝爾實驗室所開發的產品。.

查看 文件描述符和遠程文件共享

FD

FD可以是下列意思:.

查看 文件描述符和FD

Fork (系统调用)

在计算机领域中,尤其是Unix及类Unix系统操作系统中,fork是一种创建自身行程副本的操作。它通常是内核实现的一种系统调用。Fork是类Unix操作系统上创建进程的一种主要方法,甚至历史上是唯一方法。.

查看 文件描述符和Fork (系统调用)

Here文档

here文档,又称作heredoc、hereis、here-字串或here-脚本,是一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言(像Perl、PHP、Python和Ruby)里定义一个字串的方法。它可以保存文字裡面的换行或是縮排等空白字元。一些语言允许在字串里执行变量替换和命令替换。 here文档最通用的语法是<<紧跟一个标识符,从下一行开始是想要引用的文字,然后再在单独的一行用相同的标识符关闭。在Unix shell里,here文档通常用于给命令提供输入内容。.

查看 文件描述符和Here文档

Inotify

inotify是Linux核心子系統之一,做為檔案系統的附加功能,它可監控檔案系統並將異動通知應用程式。本系統的出現取代了舊有Linux核心裡,擁有類似功能之dnotify模組。 inotify的原始開發者為John McCutchan、羅伯特·拉姆與Amy Griffis。於Linux核心2.6.13發行時(2005年六月十八日),被正式納入Linux核心。儘管如此,它仍可透過修補程式的方式與2.6.12甚至更早期的Linux核心整合。 inotify的主要應用於桌面搜索軟體,像:Beagle,得以針對有變動的檔案重新索引,而不必沒有效率地每隔幾分鐘就要掃描整個檔案系統。相較於主動輪詢檔案系統,透過作業系統主動告知檔案異動的方式,讓Beagle等軟體甚至可以在檔案更動後一秒內更新索引。 此外,諸如:更新目錄檢視、重新載入設定檔、追蹤變更、備份、同步甚至上傳等許多自動化作業流程,都可因而受惠。.

查看 文件描述符和Inotify

MS-DOS API

MS-DOS API最初是中的应用程序接口(API),并也被MS-DOS/PC-DOS及其他DOS兼容操作系统使用。大多数对DOS API的调用是使用中斷21h( 21h)。在调用INT 21h时,在AH 寄存器中带有子函数号,其他寄存器中带有其他参数,从而调用各个DOS服务。DOS服务包括键盘输入、视频输入、磁盘文件访问、执行程序、内存分配及其他事务。在1980年代后期,围绕(DPMI)的DOS扩展器允许程序在16位元或32位元的保护模式下运行,并仍可访问DOS API。.

查看 文件描述符和MS-DOS API

Procfs

在许多类 Unix 计算机系统中, procfs 是 进程 文件系统 (file system) 的缩写,包含一个伪文件系统(启动时动态生成的文件系统),用于通过内核访问进程信息。这个文件系统通常被挂载到 /proc 目录。由于 /proc 不是一个真正的文件系统,它也就不占用存储空间,只是占用有限的内存。 以下操作系统支持 procfs.

查看 文件描述符和Procfs

Sync (Unix)

sync(意指Synchronize,即“同步”)为UNIX操作系统的标准系统调用,功能为将内核文件系统缓冲区的所有数据(也即预定将通过低级I/O系统调用写入存储介质的数据)写入存储介质(如硬盘)。 作为C语言的函数之一,sync()一般以void sync(void)的形式在unistd.h内声明。该函数也可以从命令行执行sync命令的方式调用,同时在其他程序语言(如Perl)中也有名字与之相似的函数。.

查看 文件描述符和Sync (Unix)

Windows对象管理

对象管理是Windows Executive的一个子系统实现,用于管理Windows资源。 资源包括物理设备、文件、文件目录、注册表条目、正在运行的进程等等。所有子系统访问资源都必须通过对象管理子系统。.

查看 文件描述符和Windows对象管理

標準串流

在Unix和類Unix系統中,如同某些程式語言介面一樣,標準串流是當一個電腦程式執行時,在它和它的環境間(典型為終端),事先連接的輸入和輸出頻道。這三個I/O連結稱作“標準輸入”、“標準輸出”和“標準錯誤輸出”。.

查看 文件描述符和標準串流

沙盒 (電腦安全)

在计算机安全領域,沙盒(sandbox,又譯為沙箱)是一種安全機制,為執行中的程式提供的隔離環境。通常是作为一些来源不可信、具破坏力或无法判定程序意图的程序提供实验之用。 沙盒通常严格控制其中的程序所能访问的资源,比如,沙盒可以提供用后即回收的磁盘及内存空间。在沙盒中,网络访问、对真实系统的访问、对输入设备的读取通常被禁止或是严格限制。从这个角度来说,沙盒属于虚拟化的一种。 沙盒中的所有改动对操作系统不会造成任何损失。通常,这种技术被计算机技术人员广泛用于测试可能带毒的程序或是其他的恶意代码。.

查看 文件描述符和沙盒 (電腦安全)

亦称为 Fcntl.h。