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

 我来答
风若远去何人留
2017-04-20 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450131
专业C/C++软件开发

向TA提问 私信TA
展开全部

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

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

这种情况可以用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);//关闭。
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式