È il loro qualsiasi C popen() equivalente in C++?equivalenti popen in C++
risposta
È possibile utilizzare "non ancora ufficiale" boost.process se si desidera un approccio orientato agli oggetti per la gestione del sottoprocesso.
Oppure puoi usare lo stesso popen
, se non ti dispiace la C-ness di tutto.
C++ è un superset di C. popen
disponibile anche per codice C++.
Non penso che il popen sia richiesto dallo standard. – Puppy
Quale standard? popen viene dal POSIX.1-2001. Persino Windows ha un livello di compatibilità POSIX. Linux e MacOS lo supportano naturalmente, ovviamente. È una funzione di libreria, non parte dello standard C stesso. – Borealid
popen() è parte di POSIX, quindi qualsiasi sistema operativo simile a UNIX dovrebbe supportarlo. Anche per i sistemi operativi non POSIX, se avete popen() in C, dovreste essere in grado di usarlo in C++, a meno che non ci sia qualcosa di molto sbagliato nel compilatore. – Chris
Non c'è C++ equivalente in qualsiasi standard, tuttavia involucri C++ vicino questa funzione (e altre funzioni processo POSIX) si trovano in vari toolkit UI (es QT, glibmm) e nel pstreams library.
Si noti che 'popen' è * non * una funzione prescritta dallo standard * [C99] (https://en.wikipedia.org/wiki/C99) *. È in POSIX, quindi è disponibile nel codice C++ per i sistemi POSIX. –