The UNIX and Linux Forums  
Helloやアメリカ合衆国へようこそ! UNIXおよびLinuxフォーラム!訪問し、当社のグローバルコミュニティに参加いただきありがとうございます。

Go Back   UNIXおよびLinuxフォーラム > トップフォーラム > UNIXのダミー質問と回答のため
Googleのunix.com



UNIXのダミー質問と回答のため もしUNIXやLinuxについての質問があれば、ここに投稿してください。すべてのUNIXおよびLinux初心者歓迎!

その他のUNIXおよびLinuxフォーラムトピックは参考にすること
スレッド スレッドスターター フォーラム 返信 最後の投稿
プログラムが別のプログラムの実行をトレースする jiten_hegde 高レベルのプログラミング 3 2008年8月19日 05:26午前
C + +の方法( ) & STDINと他のプログラムにはstdout ( )とフォークのパイプを使用するように vvaidyan 高レベルのプログラミング 2 2008年5月16日 07:30午後
どのようにパイプ( STDINハンドル)のコンテンツの後に書かれている別のプログラムをクリアするか? vvaidyan 高レベルのプログラミング 10 2008年5月15日 07:08午後
どのように別のプログラム(プログラムは、 - > STDINハンドルへの書き込みに[ STDINハンドル]プログラムイ) vvaidyan 高レベルのプログラミング 1 2008年4月30日 01:44午後
どうすればprocess_poolプログラムを書くことができますか? 打つ 高レベルのプログラミング 4 2002年6月17日 03:36午前

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek を搭載 Powered by Google
 
LinkBack スレッドツール このスレッドを検索 スレッドを評価 表示モード
  #1固定リンク)  
Old 2008年4月30日
vvaidyan vvaidyan is offline
登録ユーザー
  
 

参加日: 2008年3月
投稿: 15
どのように別のプログラム(プログラムは、 - > STDINハンドルへの書き込みに[ STDINハンドル]プログラムイ)

やあ、
プログラムA :パイプを使用しています( )

私PROGAM Bの標準出力を読むことができる午前( stdoutのシステムを通じてプログラム( )コマンド)になったのを使用する場合:

*子供
- > dup2 ( fd [ 1 ] 、 STDOUT_FILENO ) ;
- > execl ( " /パス/プログラムB "を、 "プログラムB "を、はNULL ) ;

*親
- >文字の行[ 100 ] ;
- > ( fd [ 0 ] 、ライン) 100を読む;


質問:
---------
どのようにプログラムSTDINハンドルをAからBのプログラムを書くことですか?
*私は別のパイプを使用する必要がありますか?
*どのように私はBプログラムでSTDINハンドルを読むか? cinを使用するか?

事前のおかげで、
ヴィヴェック
  #2固定リンク)  
Old 2008年8月2日
恐るべき redoubtable is offline
登録ユーザー
  
 

参加日: 2008年8月
場所:ポルトガル
投稿数: 242
/*
*ここにどのようにそれができるの...
*を使用してpopen ( )
*
#含まれ<sys/types.h>
#含まれ<fcntl.h>
#含まれ<stdio.h>
#含まれ<stdlib.h>
#含まれ<unistd.h>

読ま0定義#
1書き込みを定義#

pid_t
popen2 (定数文字*コマンド、 INTは* infp 、 INTは* outfp )

INTはp_stdin [ 2 ] 、 p_stdout [ 2 ] ;
pid_t pidを;

場合(パイプ( p_stdin ) ! \u003d 0 | |パイプ( p_stdout ) ! \u003d 0 )
リターン-1 ;

フォーク\u003d pidを( ) ;
( pidを< 0 )
pidを返す;
他の場合( pidを\u003d\u003d 0 )

近い( p_stdin [書き込み] ) ;
dup2 ( p_stdin [共同] 、読まれる) ;
近い( p_stdout [共同] ) ;
dup2 ( p_stdout [書き込み] 、書き込み) ;
( " / bin / shに" execl 、 " shに" 、 " - c "は、コマンド、はNULL ) ;
perror ( " execl " ) ;
出口( 1 ) ;


( infp \u003d\u003d NULLの場合)
近い( p_stdin [書き込み] ) ;
その他の
* infp \u003d p_stdin [ ]書き込み;
( outfp \u003d\u003d NULLの場合)
近い( p_stdout [共同] ) ;
その他の
* outfp \u003d p_stdout [共同] ;
pidを返す;


/ *
*現在のメインに... STDINハンドルinfpのファイル記述子( )になる
* outfpは、標準出力(ファイルディスクリプタからになります)
*楽しもう
* /

INTは
メイン( INTはargc 、文字** argv )

INTはinfp 、 outfp ;
文字buf [ 128 ] ;

( popen2 ( "あなたのプログラム- B "を、 & infp 、 & outfp ) < \u003d 0 )

printf ( " - B \ Ñ " )プログラムを実行することはできません。
出口( 1 ) ;


memset ( bufは0x0 、 sizeof ( buf ) ) ;

( infp 、 " Ž \ Ñ " 、 2 )を書く;
( infp 、 "エ\ Ñ " 、 2 )を書く;
( infp 、 "書く\ Ñ " 、 2 ) ;
( infp 、の" C \ Ñ " 、 2 )を書く;
近い( infp ) ;
( outfp 、 buf 、 128 )を読む;
\u003d ' % ' \ Ñ "秒printf ( " buf 、 buf ) ;
戻り0 ;
  #3固定リンク)  
Old 2008年8月2日
ジムマクナマラ jim mcnamara is offline Forum Staff  
...@...
  
 

参加日: 2004年2月
場所: NM
投稿数:5754
また注記: popen契約を1つの方法-のいずれかをしたり、書くのは子プロセスからの読み取りを選択すると、 popenを同時に行うことはできません。そうでなければ、もっと面白いと高度なプロセス間通信( IPC )にパイプのようなプログラミングを得るかもしれない。
  #4固定リンク)  
Old 2008年8月2日
恐るべき redoubtable is offline
登録ユーザー
  
 

参加日: 2008年8月
場所:ポルトガル
投稿数: 242
Post

引用:
当初の投稿 ジムマクナマラ View Post
また注記: popen契約を1つの方法-のいずれかをしたり、書くのは子プロセスからの読み取りを選択すると、 popenを同時に行うことはできません。そうでなければ、もっと面白いと高度なプロセス間通信( IPC )にパイプのようなプログラミングを得るかもしれない。
そうだよ!その のPOSIX0.1から2001関数popen ( )だけを読むことや、両方のは書くことができます。しかし、もしあなたは私の実装を見ると、私は実際には使用しないでくださいpopen ( ) 。代わりに、私はpopen2作成( )は、親プロセスには2つのパイプ( infp 、 outfp )が開きます。してみてください、そのインスタンスの"猫" 。

コード:
if (popen2("your-program-B", &infp, &outfp) <= 0)
        {
        printf("Unable to exec your-program-B\n");
        exit(1);
        }

        memset (buf, 0x0, sizeof(buf));

/* 
 * writing to stdin here
 */
        write(infp, "Z\n", 2);
        write(infp, "D\n", 2);
        write(infp, "A\n", 2);
        write(infp, "C\n", 2);
        close(infp);
/*
 * reading stdout here
 */
        read(outfp, buf, 128);
        printf("buf = '%s'\n", buf);
私はそれならば、その子プロセス"から読むあなたの書いたプログラム- B "を
Closed Thread

ブックマーク

スレッドツール このスレッドを検索
このスレッドを検索

高度な検索
表示モード このスレッド
このスレッド

投稿ルール
あなた ことができない。 新しいスレッドを投稿
あなた ことができない。 返信の投稿
あなた ことができない。 添付ファイルの投稿
あなた ことができない。 自分の投稿を編集

BBコード なる 〜の上に
スマイリー なる 〜の上に
[イメージ] コードは 〜の上に
HTMLコードは、 オフ
トラックバック なる 〜の上に
ピングバック なる 〜の上に
Refbacks なる 〜の上に




すべてGMT -4です。現在の時刻は 02:50午前


提供: vBulletin、著作権© 2000 - 2006、Jelsoft企業株式会社。言語翻訳による電源
vBCredits v1.4著作権© 2007 - 2008 、 PixelFXスタジオ
は、 UNIXおよびLinuxフォーラムのコンテンツ著作権© 1993 〜 2009 。すべての権利を管理しReserved.Ad RedTyger

コンテンツ関連のURLで vBSEO 3.2.0