函数原型:

#include <stdlib.h>

int system(const char *command);

作用:system()通过调用/bin/sh-c命令执行命令中指定的命令,并在命令完成后返回。在命令执行期间,SIGCHLD将被阻止,SIGINT和SIGQUIT将被忽略。执行错误将会返回-1

通俗来讲就是可以利用system函数执行shell终端命令,比如我们在linux终端敲打的ls 文件名的命令,在这里用system("ls test.txt");也可以做到。

补充1:说明一下这里提到的信号

产生方式产生结果
SIGINT键盘Ctrl+C只对当前前台进程,和他的所在的进程组的每个进程都发送SIGINT信号,之后这些进程会执行信号处理程序再终止.
SIGQUIT在Linux上,也可以使用Ctrl-4是当用户请求进程执行核心转储时由其控制终端发送到进程的信号

那么对于SIGCHLD信号来说,只有在以下三个条件中才会向父进程发送SIGCHLD信号:

1. 子进程终止时

2. 子进程接收到SIGSTOP信号停止时

3. 子进程处在停止态,接受到SIGCONT后唤醒时

补充2:在QT中使用脚本语言还有其他方式,比如

(1)QProcess:execute("ls");

(2)QProcess *process = new QProcess();

process->start("ls");

QProcess的方式不会阻塞,而其他两种会阻塞直到命令执行完。

GitHub 加速计划 / li / linux-dash
6
1
下载
A beautiful web dashboard for Linux
最近提交(Master分支:4 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐