Bạn có thể sử dụng các hàm popen và pclose để chuyển đến và đi các quá trình. Hàm popen () mở ra một quy trình bằng cách tạo một đường ống, phân nhánh và gọi trình bao. Chúng ta có thể sử dụng một bộ đệm để đọc nội dung của stdout và tiếp tục thêm nó vào một chuỗi kết quả và trả về chuỗi này khi các quá trình thoát.
ví dụ
#include <iostream> #include <stdexcept> #include <stdio.h> #include <string> using namespace std; string exec(string command) { char buffer[128]; string result = ""; // Open pipe to file FILE* pipe = popen(command.c_str(), "r"); if (!pipe) { return "popen failed!"; } // read till end of process: while (!feof(pipe)) { // use buffer to read and add to result if (fgets(buffer, 128, pipe) != NULL) result += buffer; } pclose(pipe); return result; } int main() { string ls = exec("ls"); cout << ls; }
Đầu ra
Điều này sẽ cung cấp đầu ra -
a.out hello.cpp hello.py hello.o hydeout my_file.txt watch.py