2017-09-15 2 views
0

これは通常パイプで行われます。 (!とで行われた作業の多くを得て)私がテストしてきた環境で正常に動作するを思えのWindows 10でパイプ、特に:Windowsのbashのプロセス間で大量のデータを流すにはどうすればいいですか?

  • のGit bashの
  • MSYS2のbashの

大きなファイルやバイナリストリームがある場合は、インストールされているツール(cat largefile.JPG | wc -c)を正確に使うことができますが、C++で独自の画像処理プログラムを書くたびに、stdin cstdio古い学校のCメソッド、Cプログラム、またはC++を使用するcin iostreams)ストリームが終了する前に、ストリームのほんの一部しか表示されません。その長さは決定的であるように見えるので、同じファイルで同じ結果が得られます。

OS XまたはLinux上で同じコードをテストすると、stdinストリームの長さが正しい長さであることが明らかに適切に機能します。したがって、ディスクに当たることなくデータを渡すために、これらのプラットフォーム上でこれを実用的な方法にします。私は10年前からバッシュフーを磨いていたので、それはかなり自然になる。

私が利用できる他の方法も存在しなければなりませんが、私が本当に頼りになると思うようなものをすぐに思いつくことはできません。ここでこの問題のトラブルシューティングを試みることができるものは何ですか?私は本当に私が

g++.exe (Rev2, Built by MSYS2 project) 7.1.0 
Copyright (C) 2017 Free Software Foundation, Inc. 

を含め、MSYS2内部のパックマンをインストールすることができますUNIXツールのセットが好きしかし、これはこれまでのところ、私の一つの大きなつまずきの石です。このコンパイラでコンパイルされた私の最も簡単なプログラムは、標準入力ストリームから有効量のデータをスラッシュアップできません。何故ですか?オペレーティングシステムやPOSIXレイヤーやその黒い魔法のいくつかの制限がある場合、wcはどうして完璧に動作しますか?

+1

すべての 'stdin'とそれをどのように実行するのに失敗した、コンパイル可能な、実行可能なプログラムを表示してください。 –

+0

私は[this](https://stackoverflow.com/a/3495410/340947)コードを使用し、これを次のように実行します: 'cat large.JPG | 。/ size'。これは 'gcc size.c -o size'でコンパイルされます。 –

+0

https://github.com/borgbackup/borg/pull/2032を見ましたか? – zortacon

答えて

0

WindowsではCtrl + ZがEOFを通知していましたが、これはわかりませんでした。

この回答のコメントにはAlfに謝意を表します。あなたが回答を投稿する場合、私は受け入れを切り替えます。

1

そうでもない答え、それを動作するように支援するためのちょうど先端...

すでにGraphicsMagickのを持っているとして、あなたは、テストのために非常に簡単に任意の長さと内容でファイルを作成することができます。だから、

、六角27のフル64kBのファイル:

gm convert -depth 8 -size 64x1024 xc:"#272727" gray:- | wc -c 

あるいは、ゼロの32kBのPGMファイル:

gm convert -depth 8 -size 32x1024 xc:"#000" PGM:- 

あるいは、0x00xffの間のすべての進値を持つファイル:

gm convert -depth 8 -size 1x256 gradient:black-white gray:- | xxd 

00000000: 0000 0102 0304 0506 0708 090a 0b0c 0d0e ................ 
00000010: 0f10 1112 1314 1516 1718 191a 1b1c 1d1e ................ 
00000020: 1f20 2122 2324 2526 2728 292a 2b2c 2d2e . !"#$%&'()*+,-. 
00000030: 2f30 3132 3334 3536 3738 393a 3b3c 3d3e /:;<=> 
00000040: 3f40 4142 4344 4546 4748 494a 4b4c 4d4e [email protected] 
00000050: 4f50 5152 5354 5556 5758 595a 5b5c 5d5e OPQRSTUVWXYZ[\]^ 
00000060: 5f60 6162 6364 6566 6768 696a 6b6c 6d6e _`abcdefghijklmn 
00000070: 6f70 7172 7374 7576 7778 797a 7b7c 7d7e opqrstuvwxyz{|}~ 
00000080: 7f80 8182 8384 8586 8788 898a 8b8c 8d8e ................ 
00000090: 8f90 9192 9394 9596 9798 999a 9b9c 9d9e ................ 
000000a0: 9fa0 a1a2 a3a4 a5a6 a7a8 a9aa abac adae ................ 
000000b0: afb0 b1b2 b3b4 b5b6 b7b8 b9ba bbbc bdbe ................ 
000000c0: bfc0 c1c2 c3c4 c5c6 c7c8 c9ca cbcc cdce ................ 
000000d0: cfd0 d1d2 d3d4 d5d6 d7d8 d9da dbdc ddde ................ 
000000e0: dfe0 e1e2 e3e4 e5e6 e7e8 e9ea ebec edee ................ 
000000f0: eff0 f1f2 f3f4 f5f6 f7f8 f9fa fbfc fdfe ................ 
関連する問題