• ベストアンサー

特殊ファイル(special file)の扱い方

岩波書店の「オペレーティングシステム」でOSの勉強をしているのですが、 「UNIXでは/devの下に入出力装置の名前が登録されている。 入出力装置にアクセスするためのこれらのファイルを UNIXでは特殊ファイルと呼んでいる。 特殊ファイルは、ファイルをパラメータとして指定できるコマンド および多くのシステムコールで指定することが出来る。・・」 と本にあります。 プリンタでの例が分かり易いかなと思い、特殊ファイルへのアクセスを 試そうとしましたが、使用しているプリンタが学内のネットワークに 繋がったプリンタであるためか、/devの下に名前がありませんでした。 (プリントアウトは普通に出来ます。) 初歩的な質問で恐縮ですが、特殊ファイル名を指定してアクセスする コマンドの例にはどんなものがあるのか、 簡単な物でいいので教えていただけないでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

こんばんは いちばんよくつかうのは mount じゃないでしょうか? mount -t fat -o users,rw… /dev/sda1 /mnt/hoge  とか。 この場合は/dev/{h|s}d{a-z}[*num*] のブロックデバイスのかわりに uuidで指定することもあるかもですが(特にfstabで)。(「/dev/」以降の表現のし方間違ってるかもしれませんが…) 次に良く使うのは シェルスクリプトで hogecomand param1 param2 > /dev/null とかで出力を捨てるときかなぁ grepで/dev/nullというのは#1さんのとこで既出だし。 あ, CFcardを dd if=/dev/sda of=/home/hogehoge とやって中身をコピーしたあと dd if=/dev/zero of=/dev/sda1  でまっさらにするなんてのも 私は常用してます 要は、それぞれのスペシャルファイルによって用途がちがうのでおのずと使うコマンドも限定されるんじゃないかと思います。/dev/console とか /dev/mice とか /dev/mixer とかはコマンドで使うよりシステムコールで良く使うだろうし、/dev/ttyS? や /dev/lp?はアプリケーションの設定の方に良く顔出すんじゃないでしょうか。 /dev配下のデバイスファイルには ブロックデバイスとキャラクタデバイスがあります(raw deviceもあるらしいけどこれはよくわかんないです)。違いはデータの流れにバッファが必要か否か、だったと思います。バッファに貯めてから塊(=ブロック)で送るのがブロックデバイス、貯めずに逐一流すのがキャラクタデバイス) それぞれのファイルは単一のデバイスの事ですが、逆に単一のデバイスがブロックデバイスファイルとキャラクタデバイスファイル問わず複数のファイルとして置かれていることも多いです。(例えば /dev/hdc = /dev/cdrom :これはsymlink) 既出事項も多いですが御参考程度になれば幸いです

jinna1515
質問者

お礼

回答ありがとうございます。 おっしゃる通り、スペシャルファイルを使う時は 用途に合ったコマンドでなければいけないようですね。 「特殊ファイルは、ファイルをパラメータとして指定できるコマンド および多くのシステムコールで指定することが出来る。」 という記述で勘違いしていたかもしれません・・。 知らない言葉が出て来たりで勉強不足が分かってしまいましたので、 もう少しこの辺りの勉強をしてみることにします。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

ディスクの管理をするコマンドは, だいたい /dev/ 以下のスペシャルファイルを使いますね. それ以外だと, そもそも使うスペシャルファイルが少ないんじゃないかな. /dev/null, /dev/zero, /dev/tty くらい? grep で複数のファイルから検索するときに /dev/null は使うなぁ.

jinna1515
質問者

お礼

回答ありがとうございます。 なるほど、ユーザがコマンドとして指定する スペシャルファイルは少ないのかもしれませんね。 勉強になります。 grepで/dev/null は使ったことなかったので ちょっとやってみたいと思います。

すると、全ての回答が全文表示されます。

関連するQ&A