linux下运行可执行C文件后怎么退到命令行来?

linux下运行可执行C文件后怎么退到命令行来?,第1张

如果C程序运行到之后没能正常结束的话就不会退出到终端会,有两个方法可以解决该问题\x0d\x0a1,在运行程序之前在命令后面加个&让程序在后台运行。\x0d\x0a例如 ./test &这个时候程序就不会一直阻塞,如果需要终止改程序可以查看该程序的进程号然后杀死该进程例如:ps -aux 找到刚才运行的程序,然后kill 进程号 就可以结束改程序了。\x0d\x0a2.如果程序已经运行了,终端已经阻塞,那么就使用Ctrl +C 来结束改程序,结束阻塞。

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

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

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

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8923450.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存