Bagaimana saya bisa menggabungkan dua aliran file menjadi satu?

0

Saya punya dua program terpisah yang berjalan yang masing-masing menghasilkan file log (satu adalah output perangkat yang terpasang ke port serial, yang lain adalah pesan debug yang dikirim dari program yang memerintahkan perangkat tersebut).

Yang ingin saya lakukan adalah mengkorelasikan pesan debug yang dicetak oleh perangkat lunak komando dengan respons yang diterima dari perangkat serial. Namun, karena kedua program tersebut terpisah, tidak mungkin bagi saya untuk melihat pesan debug dalam satu file dan mencari tahu data apa yang dikirim kembali dari port serial pada saat yang sama.

Yang ingin saya temukan adalah sesuatu yang dapat mengambil aliran file dari dua program dan menggabungkannya menjadi satu file.

Saya membayangkan solusi mungkin bekerja seperti ini:

Saya akan mengatur dua program untuk menyimpan file log mereka ke dua "file virtual", yang akan dibuat dan dipantau oleh solusi ini. Solusinya akan terus memonitor file-file virtual ini dan menyimpan output mereka ke file lain ketika data ditulis ke file.

Amr Bekhit
sumber

Jawaban:

1

Jika ini adalah perintah yang dapat dimulai dari baris perintah, maka Anda dapat melakukan ini dengan shell Unix yang baik, mulai sebagai kegiatan latar belakang menggunakan &operator, perpipaan stdout dan stderr melalui teeuntuk menulisnya ke log dan menampilkannya.

Inilah cara Anda melakukannya dengan menggunakan shell Hamilton C saya . (Anda dapat melakukan hal serupa dengan Cygwin bash .)

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

Dua proses latar belakang di bawah Hamilton C shell

Garis tambahan dengan angka 1 hingga 4 dalam tangkapan layar adalah id utas latar yang ditulis untuk stderr oleh &operator.

Nicole Hamilton
sumber
0

The Dokan perpustakaan memungkinkan Anda untuk membuat sistem file virtual yang Anda dapat maka program untuk menangani file maya yang Anda inginkan. Saya dapat menyatukan sesuatu yang menggunakan itu untuk menghasilkan drive virtual yang program saya dapat login. Perangkat lunak akan mengambil data yang masuk dari setiap file ketika dan ketika datang dan output itu ke file tunggal yang interlaced dua aliran data.

Amr Bekhit
sumber