WindowsやLinuxなどOS上のプロセスは、ファイルディスクリプタを使うことでストリームを扱います。このファイルディスクリプタとはどんなものかをテーマに情報をまとめています。
このページの目次です。
ファイルディスクリプタとは、WindowsやLinuxなどOS上のプログラムがアクセスするファイルや標準入出力などのOSが管理するストリームを識別するために用いる識別子です。
ファイルディスクリプタは、英語でfile descriptorで、ファイル記述子と訳されますが、和訳の意味も分かりにくいのでファイルディスクリプタとそもまま呼ぶことも多いです。
WindowsやLinuxなどOS上のプロセスは、ファイルディスクリプタを使うことでストリームを扱います。
ストリームとは、データを流れるものととらえる抽象的なデータ型で、ファイル入出力、メモリバッファの入出力、ネットワーク通信など、対象として扱うものはさまざまなものがあります。
WindowsやLinuxなどのOSのコア部分をカーネルといいますが、カーネルの中には実際にストリームを管理するデータ構造があります。 このストリームは、直接プロセスに見せるといろいろな理由でよくないということで、カーネルが持っているストリーム番号と対応付け、プロセスには番号でストリームを指定させる仕組みになっています。
ファイルディスクリプタを指定してストリームを扱うには、どのストリームにどの番号が結び付けられているか知っている必要があります。
ファイルディスクリプタの値は、整数値になります。ファイルディスクリプタは、0から順番に整数の値が割り当てられます。 OSによってはファイルディスクリプタにバッファ管理機能なども含めた「ファイルハンドル」と呼ばれる管理体系も存在します。
ファイルディスクリプタには、識別子とともにファイル名、ファイルサイズ、プログラムが操作中のファイル内の位置、ファイル作成、更新日時などの情報が含まれており、OSは識別子によってどのファイルを操作するかを判断します。
通常、0:標準入力(stdin)、1:標準出力(stdout)、2:標準エラー出力(stderr)の3つはOS(シェル)が最初に用意するため、プログラムがファイルをオープンすると「3」から順番にディスクリプタが割り当てられます。
例えば、open(2)は、そのファイルを示すファイルディスクリプタを返却します。
int fd; fd = open("hoge.txt", O_RDONLY);
ファイルディスクリプタとは、WindowsやLinuxなどOS上のプログラムがアクセスするファイルや標準入出力などのOSが管理するストリームを識別するために用いる識別子です。
ファイルディスクリプタを理解する上で重要と思われるポイントを3つまとめてみました。
このページの更新履歴です。
スポンサーリンク
サイト内のページ
言語
C・C++
/HTML
/Java
/JavaScript
/PHP
/シェルスクリプト
開発環境
Ant
/Burp
/Eclipse
/Fiddler
/gcc
/gdb
/Git
/g++
/JDK
/JMeter
/JUnit
/Teraterm
/ZAP
技術・仕様
Ajax
/CORBA
/Jakarta EE(旧称J2EE、Java EE)
/JNI
ライブラリ/Framework/CMS
bootstrap
/jQuery
/FuelPHP
/Lucene
/MyBatis
/Seasar2
/Spring
/Struts
/WordPress
Web API
Google Maps
ITインフラOSとミドルウェア
Linux
/Windows
/シェル
ActiveMQ
/Tomcat
/MariaDB
/MySQL
/Nagios
/Redis
/Solr
ITインフラセキュリティ
公開サーバーのセキュリティ
SI
ホームページの作り方
スポンサーリンク
関連サイト内検索ツール
zealseedsおよび関連サイト内のページが検索できます。
IPアドレス確認ツール
あなたのグローバルIPアドレスは以下です。
18.217.128.191
HTMLの表示色確認ツール
パスワード生成ツール
文字数のプルダウンを選択して、取得ボタンを押すと「a~z、A~Z、0~9」の文字を ランダムに組み合わせた文字列が表示されます。
ここに生成されます。
スポンサーリンク
Copyright (C) 2007-2024 zealseeds. All Rights Reserved. Loarding…