2017-09-15 1 views
0

이것은 대개 파이프로 수행됩니다. 보일 파이프는 특히, 내가 테스트 (!과에서 수행 작업을 많이 받고) 윈도우 10에서했던 환경에서 잘 작동합니다 :Windows에서 bash의 프로세스간에 대량의 데이터를 스트리밍하는 방법은 무엇입니까?

  • 힘내 bash는
  • MSYS2 강타

대용량 파일이나 이진 스트림이 있으면 설치 한 도구 (cat largefile.JPG | wc -c)를 정확하게 사용할 수 있지만 C++을 사용하는 자체 이미지 처리 프로그램을 작성할 때마다 stdin을 읽는 데 사용하는 방법이 무엇이든 cstdio 오래된 학교 C 방법, C 프로그램 또는 C++ cin iostreams) 끝나기 전에 나타나는 스트림의 일부분 만 얻습니다. 이 파일의 길이는 결정 론적 인 것처럼 보이므로 동일한 파일이 동일한 결과를 생성합니다.

OS X 또는 Linux에서 동일한 코드를 테스트하면 stdin 스트림 길이가 올바른 위치에서 올바르게 작동합니다. 따라서 이러한 플랫폼에서 디스크를 치지 않고 데이터를 전달할 수있는 실용적인 방법입니다. 나는 지금 당장 bash-fu를 연마 해 왔기 때문에 자연스럽게 나온다.

물론 내가 활용할 수있는 다른 방법이 있어야하지만, 내가 의지 할 것으로 기대할 수있는 어떤 것을 빨리 얻을 수는 없습니다. 이 문제를 해결할 수있는 방법은 무엇입니까? 난 정말 내가

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

을 포함, MSYS2 내부 팩맨과 함께 설치할 수 있습니다 유닉스 도구 세트를 좋아하지만 지금까지 내 하나의 큰 걸림돌이다. 이 컴파일러로 컴파일 된 가장 간단한 프로그램은 표준 입력 스트림에서 유용한 양의 데이터를 버릴 수 없습니다. 왜 그런가요? 운영체제 나 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 사이의 모든 16 진수 값의 파일 :

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 ................ 
관련 문제