<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hant-TW">
	<id>https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=%E6%AA%94%E6%A1%88%E6%8F%8F%E8%BF%B0%E5%AD%90</id>
	<title>檔案描述子 - 修訂紀錄</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=%E6%AA%94%E6%A1%88%E6%8F%8F%E8%BF%B0%E5%AD%90"/>
	<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=%E6%AA%94%E6%A1%88%E6%8F%8F%E8%BF%B0%E5%AD%90&amp;action=history"/>
	<updated>2026-05-26T00:32:26Z</updated>
	<subtitle>本 wiki 上此頁面的修訂紀錄</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.taigi.ima.org.tw/w/index.php?title=%E6%AA%94%E6%A1%88%E6%8F%8F%E8%BF%B0%E5%AD%90&amp;diff=426494&amp;oldid=prev</id>
		<title>TaiwanTonguesApiRobot：​從 JSON 檔案批量匯入</title>
		<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=%E6%AA%94%E6%A1%88%E6%8F%8F%E8%BF%B0%E5%AD%90&amp;diff=426494&amp;oldid=prev"/>
		<updated>2025-08-22T15:51:04Z</updated>

		<summary type="html">&lt;p&gt;從 JSON 檔案批量匯入&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新頁面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;檔案描述子&amp;#039;&amp;#039;&amp;#039;（File descriptor）是電腦科學中的一个術語，是一个用於表述指向檔案的參照的抽象化概念。&lt;br /&gt;
&lt;br /&gt;
==概欲==&lt;br /&gt;
&lt;br /&gt;
檔案描述子佇形式上是一个非負整數。實際上，伊是一个索引值，指向核心為每一个行程所維護的該行程拍開檔案的記錄表。當程式拍開一个現有檔案或者建立一个新檔案的時陣，核心向行程傳回一个檔案描述子。佇咧程式設計內底，一寡牽涉著底層的程式來編寫往往會圍踅檔案描述子展開。但是檔案咧講這一概念往往干焦適用佇咧 UNIX、Linux 這款的作業系統。&lt;br /&gt;
&lt;br /&gt;
彼每一个 Unix 行程（除了可能較捷駐程式）應該攏有三个標準的 POSIX 檔案描述子，對應三个標準流：&lt;br /&gt;
&lt;br /&gt;
===優點===&lt;br /&gt;
&lt;br /&gt;
檔案描述子的優點主要有兩个：&lt;br /&gt;
&lt;br /&gt;
* 是因為檔案描述子的 I / O 操作相容 POSIX 標準。&lt;br /&gt;
* 佇咧 UNIX、Linux 的系統呼叫中，大量的系統呼叫攏是依賴伊的檔案來講。&lt;br /&gt;
&lt;br /&gt;
比如講，下跤的程式碼就示範矣如何是因為檔案來講子來讀當前 kha-tá-lok-guh 後的一个指定檔案，並共檔 àn-nāi 容列印到主控台。&lt;br /&gt;
&lt;br /&gt;
此外，佇咧 Linux 系列的作業系統上，因為 Linux 的設計思想就是共一切裝置攏視作檔案。所以，檔案描述子的存在提供了程式操作裝置的統一方法。&lt;br /&gt;
&lt;br /&gt;
===缺點===&lt;br /&gt;
&lt;br /&gt;
檔案描述子的概念存在兩大缺點：&lt;br /&gt;
&lt;br /&gt;
* 在非 UNIX / Linux 作業系統上（如 Windows）， 無法度因為這一概念進行程式的設計—— 事實上，Windows 後的檔案描述子佮號誌、互斥鎖等核心物件仝款攏記做 HANDLE。&lt;br /&gt;
* 因為檔案描述子咧形式毋過是一个整數，做程式碼量增加大時，會使程式的設計者誠歹分清佗一寡整數意味著資料，佗一寡意味出檔案來講。所以，完成的程式碼會當讀性也就會變甲真䆀，這點一般透過使用名稱有文字意義的魔術數字來進行替換來解決。&lt;br /&gt;
&lt;br /&gt;
===其他===&lt;br /&gt;
&lt;br /&gt;
* 對於 ANSI C 規範當中定義的標準庫的檔案 I / O 操作。ANSI C 規範迵過出一个解決方法，就是使用 FILE 結構體的指標。事實上，UNIX / Linux 平台頂的 FILE 結構體的實作中往往攏是封囥檔案描述子變數佇咧其中。&lt;br /&gt;
* 佇咧 UNIX / Linux 平台頂，對主控台（Console）的標準輸入，標準輸出，標準錯誤輸出嘛對應三个檔案描述子。𪜶分別是零 , 一 , 二。佇實際程式設計當中，若欲操作這三个檔案咧講，建議使用 &amp;lt; unistd . h &amp;gt; 標頭檔中定義的三个巨集來表示：STDIN \ _ FILENO , STDOUT \ _ FILENO 以及 STDERR \ _ FILENO .&lt;br /&gt;
* 對一个行程來講，檔案描述子的變化範圍做零 ~ OPEN \ _ MAX .&lt;br /&gt;
&lt;br /&gt;
==佮檔案描述子相關的操作==&lt;br /&gt;
&lt;br /&gt;
===檔案描述子的生成===&lt;br /&gt;
&lt;br /&gt;
* open ( ) , open 六十四 ( ) , creat ( ) , creat 六十四 ( )&lt;br /&gt;
* socket ( )&lt;br /&gt;
* socketpair ( )&lt;br /&gt;
* pipe ( )&lt;br /&gt;
&lt;br /&gt;
===佮單一檔案來講出手的操作===&lt;br /&gt;
&lt;br /&gt;
* read ( ) , write ( )&lt;br /&gt;
* recv ( ) , send ( )&lt;br /&gt;
* recvmsg ( ) , sendmsg ( )&lt;br /&gt;
* sendfile ( )&lt;br /&gt;
* lseek ( ) , lseek 六十四 ( )&lt;br /&gt;
* fstat ( ) , fstat 六十四 ( )&lt;br /&gt;
* fchmod ( )&lt;br /&gt;
* fchown ( )&lt;br /&gt;
&lt;br /&gt;
===佮複數檔案描述子相關的操作===&lt;br /&gt;
&lt;br /&gt;
* select ( ) , pselect ( )&lt;br /&gt;
* poll ( ) , epoll ( )&lt;br /&gt;
&lt;br /&gt;
===佮檔案來講表示相關的操作===&lt;br /&gt;
&lt;br /&gt;
* close ( )&lt;br /&gt;
* dup ( )&lt;br /&gt;
* dup 二 ( )&lt;br /&gt;
* fcntl ( F \ _ DUPFD )&lt;br /&gt;
* fcntl ( F \ _ GETFD and F \ _ SETFD )&lt;br /&gt;
&lt;br /&gt;
===改變行程狀態的操作===&lt;br /&gt;
&lt;br /&gt;
* fchdir ( )&lt;br /&gt;
* mmap ( )&lt;br /&gt;
&lt;br /&gt;
===佮檔案加鎖的操作===&lt;br /&gt;
&lt;br /&gt;
* flock ( )&lt;br /&gt;
* fcntl ( F \ _ GETLK , F \ _ SETLK and F \ _ SETLKW )&lt;br /&gt;
* lockf ( )&lt;br /&gt;
&lt;br /&gt;
===佮通訊端相關的操作===&lt;br /&gt;
&lt;br /&gt;
* connect ( )&lt;br /&gt;
* bind ( )&lt;br /&gt;
* listen ( )&lt;br /&gt;
* accept ( )&lt;br /&gt;
* getsockname ( )&lt;br /&gt;
* getpeername ( )&lt;br /&gt;
* getsockopt ( ) , setsockopt ( )&lt;br /&gt;
* shutdown ( )&lt;br /&gt;
&lt;br /&gt;
===其他===&lt;br /&gt;
&lt;br /&gt;
* ioctl ( )&lt;br /&gt;
&lt;br /&gt;
==注釋==&lt;br /&gt;
&lt;br /&gt;
==參考文獻==&lt;br /&gt;
&lt;br /&gt;
[[分類: 待校正]]&lt;/div&gt;</summary>
		<author><name>TaiwanTonguesApiRobot</name></author>
	</entry>
</feed>