在C++中,你可以使用exec
函數族來執行外部命令
#include <iostream>
#include <cstdlib>
int main() {
// 要執行的外部命令,例如:ls
const char* command = "ls";
// 使用execvp函數執行外部命令
char* argv[] = {nullptr}; // 注意:argv數組的第一個元素必須是空指針
int result = execvp(command, argv);
if (result == -1) {
std::cerr << "執行外部命令時出錯: " << std::strerror(errno) << std::endl;
return 1;
}
// 如果execvp成功執行,這里不會被執行
std::cout << "外部命令執行成功" << std::endl;
return 0;
}
在這個示例中,我們使用execvp
函數執行了ls
命令。argv
數組包含一個空指針,因為execvp
只需要命令名稱。如果命令執行成功,程序將不會返回到這里。如果執行失敗,程序將打印錯誤信息并返回1。
注意:exec
函數族會替換當前進程的映像和內存,因此在調用exec
之后的代碼將不會被執行。如果你需要在子進程中執行命令并獲取其輸出,可以考慮使用popen
和pclose
函數。