MSDN menjelaskan bagaimana Anda melakukan apa yang popen lakukan dengan menggunakan Windows API di Pipe Handle Inheritance . Di sini ia memberikan contoh yang terdokumentasi dengan baik. Levelnya jauh lebih rendah daripada _popen
fungsi yang ditemukan di pustaka runtime yang ditautkan oleh Jason, tetapi menggunakan API Win32 secara eksklusif.
Sayangnya itu tidak terlalu mudah.
Anda perlu membuat pipa menggunakan fungsi win32 (CreatePipe), maka biasanya Anda perlu menduplikasi ujung pipa (DuplicateHandle) yang Anda berikan ke subproses untuk memungkinkannya diwariskan, jika tidak maka tidak akan dan karenanya tidak dapat digunakan.
Kemudian Anda perlu membuat proses menggunakan CreateProcess (yang membutuhkan banyak penunjuk struktur, termasuk STARTUPINFO), dan meneruskan STARTUPINFO pegangan yang telah Anda gandakan sebagai stdout-nya.
Kemudian Anda dapat membaca dari ujung pipa pembacaan (ReadFile dll) hingga Anda mencapai eof, lalu Anda perlu membersihkannya dengan menutup semua berbagai pegangan win32.
Anda dapat memanggil _popen
jika Anda sedang menulis aplikasi konsol. Untuk informasi selengkapnya, lihat dokumentasi di situs MSDN:http://msdn.microsoft.com/en-us/library/96ayss4b(VS.80).aspx