NOEMBLEM/エンブレムが設定されていません。

メールの詳細(トピック表示)

パイプ

投稿者:kazzz4…さん  2002/06/05 17:48  MLNo.160   [メール表示]

はじめまして。なが と申します。
なにぶん若輩ですが、よろしくご教授お願いします。

C言語で作成したプログラム「ABC」があるとします。
そこで、UNIXの「パイプ」なるものを使い、
echo "naga" | ABC
として、echoより出力される「naga」をプログラム「ABC」へ
引数として渡す ということは可能なのでしょうか?

よろしくお願いいたします。


このエントリーをはてなブックマークに追加


  • MLNo.170   kazzz4…さん  (0) 2002/06/06 08:13  [メール表示する]
    なが です。お世話になります。
    > なので、「naga」を受け取るなら、ABCでは標準入力(stdin)から読む必要
    > があります。

    三田さま ありがとうございました。
    無事 「naga」をうけとることを「確認」しました。
    失礼します。

  • MLNo.171   kazzz4…さん  (0) 2002/06/06 09:03  [メール表示する]
    なが です。
    > 三田さま ありがとうございました。
    > 無事 「naga」をうけとることを「確認」しました。

    お礼の返事を出しておきながら、再度質問する「顔皮厚」な自分を
    お許しください。

    はい、下記のプログラム(ABC.C)で、
    #include <stdio.h>
    main()
    {
    char *buff;
    fgets(buff, 50, stdin);
    if(0 < strlen(buff))
    printf("%s\n",buff);
    else
    printf("No charcter in buff\n");
    }

    つぎのコマンドで起動し、
    echo naga | ABC
    確かに、「naga」をABCが受け取ることを確認しました。

    で、このABC.Cプログラムは「標準入力(echo)が必ずある」という
    条件のもとに作ったものです。
    この条件を「標準入力(echo)がたまにある」という条件で作ると
    したら、どのような条件判断をしたらよろしいのでしょうか?
    よろしくお願いいたします。

  • MLNo.175   kazzz4…さん  (0) 2002/06/06 12:01  [メール表示する]
    ながです。たびたびお世話になります。

    > ABC
    >
    > のように、標準入力の再指定をしない状態ということでしょうか。

    はい、そのとおりです。わかっていただき、ありがとうございます。

    > そうだとすると、この状態かどうかを判定する方法はありません。

    はぁー。そうですか、残念。

    > 標準入力というもの自体が、その先が何につながっているかを
    > あえて意識させないように用意されているものだからです。
    >
    > なのでABCからみると、キーボードにつながっていてまだ何も入力
    > していないのか、Echoの出力につながっているけど時間がかかって
    > いてまだデータがきていないのかを判断できないわけです。
    >
    > やっぱり標準入力以外の方法で与えるか、
    > 引数にハイフン「-」1文字だけ与えたときだけ標準入力から
    > 読むようにするなど実行時に何か情報を与えてやるか、
    >
    > あるいは1文字目がやってくるまでに時間がかかるようなら
    > 標準入力を読まないようにするなどというドロくさいロジックを
    > うめこむかのいずれかになると思います。

    三田さま。アドバイス本当にありがとうございました。
    いろいろ作戦を考えてみたいと思います。
    またお世話になるかもしれませんが、よろしくお願いします。

  • MLNo.177   "Isao SHIMAKURA"さん  (0) 2002/06/06 15:48  [メール表示する]
     島倉です。

    > > そうだとすると、この状態かどうかを判定する方法はありません。
    > はぁー。そうですか、残念。

     isatty()でリダイレクトされているかそうでないかを判定
    できると思います。
     環境に依存するかもしれませんが。

    Isao SHIMAKURA (ISLe)
    isle.shimakura@…


    ----- Original Message -----
    From: <kazzz4@…>
    To: <beginers@…>
    Sent: Thursday, June 06, 2002 12:01 PM
    Subject: [beginers:0175] Re: パイプ



  • MLNo.179   kazzz4…さん  (0) 2002/06/06 16:21  [メール表示する]
    ながです。お世話になります。
    >  isatty()でリダイレクトされているかそうでないかを判定
    > できると思います。
    >  環境に依存するかもしれませんが。
    島倉さま、三田さまありがとうございました。
    おかげさまで、自分の環境下で「isatty()」で無事判定できました。
    またお世話になるかもしれませんが、よろしくお願いいたします。


メールへの返信はMLのメンバーしかできません。

更新順メールリスト