![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
以下のURLで、
https://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al …
No.14のC 言語の write の仕様そのもので、第一引数はファイルディスクリプタですね。
(ファイルディスクリプタについては御自身で調べてみてください)
固定値として定義されているのは、標準ストリーム ファイルの
0 … 標準入力 (write では使われない)
1 … 標準出力
2 … 標準エラー出力
です。(3 以降は各プロセスでオープンされたファイルやソケットやデバイスを
指しており、固定値ではなくプロセス毎に異なる値となります。)
括弧の所がよくわかりません。教えていただけると幸いです。すみません。
No.2ベストアンサー
- 回答日時:
No.1です。
>言葉が難しすぎるので、もう少し分かりやすく教えていただけないでしょうか?
どういった経緯でこのような質問に至ったのかはわかりませんが、No.1で回答した説明で分からないということは、絶望的に基礎知識が不足しているということだと思います。言うなれば、英単語と西洋文化のことを全く知らずにアメリカ人と英会話を楽しもうとしているようなものです。
「ファイルデスクリプタ」は、オペレーティングシステム(OS)の概念です。C言語など高級言語の多くはOS上でプログラムを実行することを前提にしたライブラリが豊富に用意されているため、OSのことをあまりよく知らなくてもプログラミングできるようになっていますが、機械語で作成したプログラムをOS上で動作させるような場合には、コンピュータアーキテクチャ以外にOSのことも熟知する必要があります。まずはコンピュータの動作原理とオペレーティングシステムの役割について学習されることをお勧めします。これらの知識は、QAサイトで一問一答形式で答えられるような内容ではありません。
No.1
- 回答日時:
>括弧の所がよくわかりません。
教えていただけると幸いです。すみません。質問文の「()」で囲まれた部分が知りたいということでしょうか?一応C言語ということで説明します。
>(ファイルディスクリプタについては御自身で調べてみてください)
https://www.google.com/search?q=%E3%83%95%E3%82% …
>(write では使われない)
0は、ユーザプログラム側から見ると入力専用端になっているからです。親プロセス(というかシェル)は、子プロセスの0に対応するソケットにはwrite()のみ、1と2に対応するソケットからはread()のみを行います。ユーザプログラム内でfork()して子プロセスを生成するようなプログラムであれば、必ずしもそれに従うわけではないため、自前で入出力端をセットアップするプログラムを書きます。
>(3 以降は各プロセスでオープンされたファイルやソケットやデバイスを指しており、固定値ではなくプロセス毎に異なる値となります。)
ユーザプログラム内でopen()とかsocket()とかすると都度自動的に割り当てられるためです。私が知る限りの処理系では、空いている最小番号が割り当てられます。厳密には「3以降は」は若干間違いで、0~2もclose()したら次回open()などすると0などが割り当てられることがあります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語について。 7 2023/01/26 16:42
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- C言語・C++・C# C言語について。 7 2022/11/06 10:02
- C言語・C++・C# C言語について。 7 2023/01/01 09:58
- C言語・C++・C# C言語について 4 2023/01/08 06:07
- その他(プログラミング・Web制作) プログラムについて。 2 2022/04/07 18:48
- Perl perlで2次元配列をサブルーチンに値渡しで渡す 5 2022/12/17 18:49
- C言語・C++・C# C++の標準入力の書き方 6 2023/02/23 23:53
- その他(AV機器・カメラ) モバイルバッテリー(USB出力)でラジオを動かす方法 7 2022/05/31 11:17
- Java Java 年数計算 3 2023/01/28 10:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#でのbatファイル実行結果取得
-
バックグラウンドのプロセスの...
-
explorer.exeが異様にメモリを食う
-
ウィンドウのタイトルからプロ...
-
ロードアベレージが高いのです...
-
プロセスIDからウィンドウハ...
-
タスクマネージャーのプロセス...
-
別のプロセスの関数を呼び出す...
-
ウインドウのプロセス終了について
-
他プロセスのウィンドウをいじ...
-
sleep関数の精度について
-
OSPFでプロセスを分ける意義に...
-
VC++6.0 「プロセスへ...
-
VB6.0 SHELLで起動...
-
誤ってプロセスの終了をしてし...
-
マルチスレッドとマルチプロセ...
-
共有メモリの使い方について
-
共有メモリの同時アクセスにつ...
-
CreateObjectで作成したExcelの...
-
別プロセスをの実行パスを取得...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
explorer.exeが異様にメモリを食う
-
タスクマネージャーのプロセス...
-
プロセスのアタッチ・デタッチ...
-
C#でのbatファイル実行結果取得
-
VB6.0 SHELLで起動...
-
ADOでアクセスのレコードに...
-
Windowsでのfork方法
-
非表示になったエクセルは?
-
共有メモリの同時アクセスにつ...
-
プロセスIDからウィンドウハ...
-
プロセスIDの取得方法について
-
C++のプログラムをバックグラウ...
-
C++でシェルを起動
-
Linuxでのスレッド間メッセージ...
-
OSPFでプロセスを分ける意義に...
-
怪しいプロセス教えてください。
-
Process.Startの戻り値を後で取得
-
SendMessageが失敗するときがある
-
ウィンドウのタイトルからプロ...
おすすめ情報