在C++/Linux中执行外部命令,可以使用popen()
和pclose()
函数。popen()
函数用于打开一个管道,并执行一个外部命令,pclose()
函数用于关闭管道。
以下是一个简单的示例代码:
#include<iostream>
#include<stdio.h>
int main() {
FILE *fp;
char path[1035];
fp = popen("which ls", "r");
if (fp == NULL) {
printf("Failed to run command\n" );
return 1;
}
fgets(path, sizeof(path)-1, fp);
if (pclose(fp) != 0) {
printf("Command not found or exited with error status\n");
return 1;
}
printf("The command is located at %s\n", path);
return 0;
}
在这个示例代码中,我们使用popen()
函数打开一个管道,并执行which ls
命令,该命令用于查找ls
命令的路径。然后,我们使用fgets()
函数从管道中读取输出,并将其存储在path
数组中。最后,我们使用pclose()
函数关闭管道,并检查命令是否成功执行。
需要注意的是,在使用popen()
函数时,需要小心避免缓冲区溢出和命令注入攻击。此外,在使用pclose()
函数时,需要检查命令的退出状态,以确保命令成功执行。
领取专属 10元无门槛券
手把手带您无忧上云