如何在C语言编程中调用linux系统终端下的命令

2025-03-15 02:08:11
推荐回答(1个)
回答1:

根据调用需求,可以分为两种:

一、仅执行系统命令,不需要该命令的打印结果。

这种情况可以用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);//关闭。
}