根据调用需求,可以分为两种:
一、仅执行系统命令,不需要该命令的打印结果。
这种情况可以用system函数。形式为
system(cmd)
其中cmd为char*类型的字符串,包含要执行的命令,命令的执行结果会输出到标准输出。
比如
system("mkdir test")这个执行,会在当前文件夹下创建test文件夹。
二、需要命令执行的打印。
虽然同样可以使用system并重定向到文件,然后打开文件读取,最终删除文件。但这样做比较繁琐,更好的做法是使用popen。
FILE *fp = popen(cmd)
执行cmd中的命令,然后可以以C文件 *** 作方式,读取命令的输出结果。比如:
if((fp=popen("pwd","r"))==NULL)//执行获取当前目录的系统命令pwd。{
printf("执行失败\n")//fp为NULL表示命令执行失败。
}
else
{
char s[100]
while(fgets(s, 100, fp))//获取文件内容。
printf("%s", s)//输出结果。
pclose(fp)//关闭。
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)