GNU/Linux >> Linux の 問題 >  >> Linux

Win32 API の Posix popen() に相当するものは何ですか?

MSDN では、パイプ ハンドルの継承で Windows API を使用して popen が行うことを説明しています。ここでは、十分に文書化された例を提供します。 _popen よりもはるかに低レベルです。 Jason によってリンクされたランタイム ライブラリにある関数ですが、Win32 API のみを使用します。


残念ながら、これは特に簡単ではありません。

win32 関数 (CreatePipe) を使用してパイプを作成する必要があります。通常、サブプロセスに渡して継承できるようにするために、パイプの末尾 (DuplicateHandle) を複製する必要があります。したがって、使用できません。

次に、CreateProcess (STARTUPINFO を含む多くの構造体ポインターを使用する) を使用してプロセスを作成し、複製したハンドルを標準出力として STARTUPINFO に渡す必要があります。

次に、パイプ (ReadFile など) の読み取り側から eof に到達するまで読み取ることができます。その後、さまざまな win32 ハンドルをすべて閉じてクリーンアップする必要があります。


_popen を呼び出すことができます コンソール アプリケーションを作成している場合。詳細については、MSDN サイトのドキュメントを参照してください:http://msdn.microsoft.com/en-us/library/96ayss4b(VS.80).aspx


Linux
  1. Registered I/O に相当する Unix/Linux は何ですか?

  2. Mac 用の Linux の updatedb コマンドに相当するものは何ですか?

  3. Windows の Linux の File コマンドに相当するものは何ですか?

  1. Linux のパイプ記号 |行う?

  2. PowerShell の Bash の cat -n に相当するものは何ですか?

  3. 独自の Linux カーネルをコンパイルする利点は何ですか?

  1. DOS の一時停止に相当する Linux は何ですか?

  2. POSIX とはどういう意味ですか?

  3. Windowsスタートアップに相当するLinuxは何ですか?