ハードなソフトの話

アクセスカウンタ

zoom RSS コマンドラインで標準入力がリダイレクトされているかどうか確認する(C言語編)

<<   作成日時 : 2009/05/15 00:02   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

Windowsのコマンドプロンプトで SORT を実行すると標準入力がコンソールにリダイレクトされる。
つまり、入力待ちになり、Ctrl-ZまたはCtrl-Cを入力するまで、そのままになる。
画像

いっぽう、CLIPコマンドは使用方法に関する説明が表示される。
画像

SORTにしてもCLIPにしても標準入力からキーボードでデータを入力したいことはまれなので、CLIPのように標準入力に何もリダイレクトされていないときは、メッセージを表示してくれると嬉しい。
こんなときは、標準入力モードを調べて、メッセージを表示すればいい。
#include <fcntl.h>
#include <io.h>
#include <sys/types.h>
#include <sys/stat.h>

#include <stdio.h>
(…省略…)
int main(int argc,char* argv[]){

  (…省略…)
  struct stat st;
  if ( fstat(fileno(stdin),&st) == -1 ){
    fprintf(stderr,"Error: cannot get file status from stdin");
    return 1;
  }
  if ( st.st_mode == S_IFIFO ){
    fprintf(stderr,helpmsg);
    return 1;
  }
  (…省略…)
}

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
コマンドラインで標準入力がリダイレクトされているかどうか確認する(C言語編) ハードなソフトの話/BIGLOBEウェブリブログ
文字サイズ:       閉じる