ฉันจะรวมสองสตรีมไฟล์เป็นหนึ่งเดียวได้อย่างไร


0

ฉันมีสองโปรแกรมที่แยกกันทำงานซึ่งแต่ละสร้างไฟล์บันทึก (หนึ่งคือเอาท์พุทของอุปกรณ์ที่แนบกับพอร์ตอนุกรม, อื่น ๆ เป็นข้อความแก้ปัญหาที่ส่งจากโปรแกรมสั่งอุปกรณ์ดังกล่าว)

สิ่งที่ฉันต้องการจะทำคือการเชื่อมโยงข้อความดีบั๊กที่พิมพ์โดยซอฟต์แวร์สั่งการกับคำตอบที่ได้รับจากอุปกรณ์อนุกรม อย่างไรก็ตามเนื่องจากทั้งสองโปรแกรมแยกกันฉันจึงไม่สามารถดูข้อความดีบั๊กในไฟล์เดียวและหาว่าข้อมูลใดที่ส่งกลับจากพอร์ตอนุกรมในเวลาเดียวกัน

สิ่งที่ฉันต้องการค้นหาคือสิ่งที่สามารถนำสตรีมไฟล์ของทั้งสองโปรแกรมมารวมกันเป็นไฟล์เดียว

ฉันคิดว่าวิธีแก้ปัญหาอาจทำงานเช่นนี้:

ฉันต้องการตั้งค่าสองโปรแกรมเพื่อบันทึกไฟล์บันทึกเป็นสอง "ไฟล์เสมือน" ซึ่งจะถูกสร้างและตรวจสอบโดยโซลูชันนี้ โซลูชันจะตรวจสอบไฟล์เสมือนเหล่านี้อย่างต่อเนื่องและบันทึกผลลัพธ์ไปยังไฟล์อื่นเช่นเมื่อข้อมูลถูกเขียนลงในไฟล์

คำตอบ:


1

หากคำสั่งเหล่านี้เป็นคำสั่งที่สามารถเริ่มต้นจากบรรทัดคำสั่งคุณสามารถทำสิ่งนี้ได้กับ Unix shell ที่ดีเริ่มต้นเป็นกิจกรรมพื้นหลังโดยใช้&โอเปอเรเตอร์ไพพ์ทั้ง stdout และ stderr ผ่านteeเพื่อเขียนลงในบันทึกและแสดง

นี่คือวิธีที่คุณอาจจะทำโดยใช้ของฉันเปลือกแฮมิลตัน C (คุณสามารถทำสิ่งที่คล้ายกันกับCygwin bash )

(command1 &; command2 &) |& tee logfile.txt

สองกระบวนการพื้นหลังภายใต้แฮมิลตัน C

บรรทัดเพิ่มเติมที่มีตัวเลข 1 ถึง 4 ในภาพหน้าจอเป็นรหัสด้ายพื้นหลังที่เขียนถึง stderr โดย&ผู้ควบคุมเครื่อง


0

ห้องสมุด Dokanช่วยให้คุณสร้างระบบแฟ้มเสมือนที่คุณสามารถแล้วโปรแกรมจะจัดการกับไฟล์เสมือนตามที่คุณต้องการ ฉันสามารถรวบรวมบางสิ่งบางอย่างเข้าด้วยกันซึ่งใช้เพื่อสร้างไดรฟ์เสมือนที่โปรแกรมของฉันสามารถเข้าสู่ระบบได้ ซอฟต์แวร์จะนำข้อมูลที่เข้ามาจากแต่ละไฟล์มาและเมื่อมันมาและส่งออกไปยังไฟล์เดียวที่เชื่อมต่อสตรีมข้อมูลทั้งสองเข้าด้วยกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.