Bagaimana menjalankan exe dengan output via cmd seperti Linux

3

Menjalankan program di Windows dengan memasukkan ini di cmd.exe.

./myapp.exe

Kemudian program tersebut terlihat seperti berjalan di utas lain, utas berbeda dari cmd. Cara membuat program berjalan melalui cmd persis seperti gaya Linux. Ketika terminal cmd hancur, program yang berjalan juga dihentikan. Saat program sedang berjalan, cmd akan menangkap output std tepat waktu.

Jiu
sumber

Jawaban:

0

Kemudian program tersebut terlihat seperti berjalan di utas lain, utas berbeda dari cmd.

Nah, program ini berjalan dalam proses terpisah , yang memiliki utas sendiri.

Pada Windows, ada dua jenis utama program: konsol dan berjendela.

Program konsol biasanya adalah aplikasi mode teks yang mencetak teks. Ini sudah berperilaku seperti yang Anda inginkan: Anda menjalankan program, shell ( cmd.exe) tunggu sampai selesai sebelum mengembalikan Anda ke prompt interaktif. Jika program ini berjalan lama, pemutusan paksa cmd.exeakan mengakhiri program.

Program berjendela biasanya aplikasi yang memiliki antarmuka pengguna grafis (misalnya notepad.exe, explorer.exe, firefox.exe). Mereka tidak berperilaku seperti yang Anda inginkan: ketika Anda menjalankannya cmd.exe, cmd.exetidak menunggu mereka dan segera mengembalikan Anda ke prompt interaktif. Program yang dijalankan berjalan secara independen dari cmd.exe, dan mengakhiri yang satu tidak berpengaruh pada yang lain.

Perhatikan bahwa program konsol dapat memiliki windows dan program yang berjendela dapat memiliki output konsol. Jadi apa yang membuat program "konsol" atau "berjendela"?

Bagian dari .exemenentukan apakah itu harus dijalankan dengan subsistem "konsol" atau dengan subsistem "windows". Ini dikonfigurasi (seringkali secara implisit) ketika program dibangun. Ini dapat diubah setelah program dibangun; editbin.exe(disertakan dengan Visual Studio) dapat memodifikasi .exefile dan mengubah subsistem mana yang harus digunakan program.

Jika Anda hanya ingin melihat keluaran stdout dan stderr, Anda tidak perlu memodifikasi .exefile. Biasanya aplikasi berjendela tidak mengirimkan output itu ke mana pun, tetapi Anda dapat mengubahnya dengan pipa / redirect. Misalnya, Anda dapat menjalankan:

SomeWindowedApplication.exe > output.txt

atau, jika Anda memiliki cat(atau yang setara) tersedia:

SomeWindowedApplication.exe | cat

Melakukannya juga akan menyebabkan cmd.exeprogram menunggu untuk berakhir sebelum mengembalikan Anda ke prompt interaktif. Perhatikan bahwa ini tidak memiliki perilaku terminasi yang Anda inginkan (yaitu, mengakhiri cmd.exedalam contoh terakhir akan berakhir cat.exe, tidak ShowWindowedApplication.exe).

Lihat juga:

jamesdlin
sumber