2009-07-27 7 views
1

私はこのようなコードがあります。どのようにクロスプラットフォームのポートunixパイプですか?

#include <unistd.h> 

#define READ_FD 0 
#define WRITE_FD 1 

int m_pipe[2]; 

if(pipe(m_pipe) != -1) { 
    unsigned long Id = gdk_input_add(m_pipe[READ_FD], GDK_INPUT_READ, Callback, (gpointer)this); 
} 

このライブラリを使用すると、それは驚くほどの両方のLinux(すべての主要な味:AS3、AS5、Solarisの場合)上に構築し、Windowsを。しかし、それは実際には窓では全く機能しません。

パイプを使用してコードを実装すると、WindowsとLinuxの両方でどのように動作するのですか?

+1

"それは実際には窓では全く機能しません"という意味ですか?エラーメッセージなどを添付してください。 – dfa

+0

ええと、私は実際にコンパイルして実行するので添付できますが、gtkはウィンドウ上のパイプから読み込むときに何らかのハッシュメッセージを表示します。 –

+1

「ハッシュメッセージのようなもの」?私たちに推測を続けさせないでください。読んだメッセージとエラーを示す実際の戻り値を教えてください。また、これは 'pipe'への有効な呼び出しでもありません。実際には失敗したコードをコピーして貼り付けます。 –

答えて

0

パイプ自体ではなく上位機能を公開します。 Unixでは、下位レベルのライブラリコードはパイプを使用しますが、他のマシンでは別のメカニズムを使用できます。

関連する問題