qt执行终端命令_Qt模拟Linux终端Terminal与系统交互(QProcess)

最近在搞一个数据库备份和恢复的工具,想在自己的程序里显示过程,即将gnome-ternimal的打印信息输出到我的程序里。因为要和ternimal交互,自然就想到用QProcess启用终端然后互相开始对话交互。但其中遇到的一些问题网上查了很久才最后解决,由于网上的答案并不是现成的,需要自己理解后才能有思路解决,所以在这里把我的思路过程分享出来,避免后人再踩坑。

认识真实的gnome-ternimal

看这篇文章的绝大多数都想直接调用Linux的命令,但不想用QProcess启动ternimal时看到终端的界面。其实。。。。你的思路错了!!!!

gnome-terminal这个终端也是一个程序,就和你自己即将要开发的Qt程序一样,有GUI界面。但其实你输入命令后,这个terminal会调用Linux系统函数。例如,你输入ls命令,terminal程序接受后会执行system(char* c)函数。system(char* c)函数属于标准库中的函数,用来和系统内核(windows/Linux)进行交互。

市面上有很多终端,有gnome-terminal(CentOS自带)、xFace等,就像通讯软件有QQ、微信等,他们不是Windows/Linux系统级别的组件,而是方便人们和系统交互而开发出来的可视化程序。

所以你要开发一个终端?这是件很复杂的事。

首先,一般的终端都会自动识别输入内容是程序还是退出等。例如输入“mysql -uroot -p123456”就是启动mysql;输入“ls”就是显示当前列表下的文件信息,而不是启用一个叫“ls”的程序。这是如何实现的呢

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值