stdin はどこから読み込む?

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: stdin はどこから読み込む?

Re: stdin はどこから読み込む?

#5

by cuser » 1年前

ripple さんが書きました:
1年前
POSIX関数ならfstat()でわかるし、Windowsシステムコール使うならGetFileType()でわかります。
https://stackoverflow.com/questions/131 ... al-or-pipe
正にリンク先のようなことが知りたかったんです
ありがとうございます
英語でも検索しないといけないんですね

それにしても、何よりも「海路の日和」があってよかったです

解決です

Re: stdin はどこから読み込む?

#4

by box » 1年前

そうですか。それは知りませんでした。
区別できて何がうれしいんだろうとは思いますけどね。

Re: stdin はどこから読み込む?

#3

by ripple » 1年前

box さんが書きました:
1年前
プログラム側では知るすべはありません。
そんなことはないです。
POSIX関数ならfstat()でわかるし、Windowsシステムコール使うならGetFileType()でわかります。
https://stackoverflow.com/questions/131 ... al-or-pipe

Re: stdin はどこから読み込む?

#2

by box » 1年前

プログラム側では知るすべはありません。
パイプであろうがリダイレクトであろうが
同じ標準入力として扱うのみです。

stdin はどこから読み込む?

#1

by cuser » 1年前

Windows, C 言語についてです

次のような文を含むソースプログラムから生成した実行プログラムを
下のイメージのように実行したとき
stdin がパイプラインかリダイレクトのどちらから読み込んだかわかる方法はありますか
(わかったところで実用性はないかもしれませんが疑問に思ったので)

コード:

ch = fgetc(stdin);
実行したときのイメージ
  1. C:\> echo aaa | prog1.exe
  2. C:\> prog1.exe < datafile1

ページトップ