ps命令:
ps -aus或者ps -ajx或者 ps -ef可以查看有哪些进程。加上 | grep "xxx" 可以查看名为”xxx"的进程。
ps -aus | grep "xxx"
kill命令:
kill -9 pid 杀死某个进程
kill -l 查看系统有哪些信号
execl函数:
如果想在一个进程内部执行系统命令或者应用程序,优先应该想到如下方式:
先fork(),然后在子进程里面执行execl拉起可执行程序或者命令。
调用execl函数后,子进程的代码段会被替代。
但是子进程的地址空间没有变化,子进程的PID也没有变换。
函数原型:
int execl(const char *pathname, const char *arg, .../* (char *) NULL */);
- path :要执行程序的路径
- 变参 arg:要执行的程序的需要的参数
- arg:占位,通常写应用程序的名字
- arg后面的:命令的参数
- 参数写完写NULL
返回值:成功,不返回。
拉起命令:
结果:
执行成功不会打印perror。
这是写的testExe.c文件:
随后生成testExe程序。
拉起程序:
结果:
execlp函数:
函数原型:int execlp(const char *file, const char *arg, .../* (char *) NULL */);
- file:执行命令的名字,根据PATH环境变量来搜索该命令
- arg:占位
- arg后面的:命令的参数
- 参数写完写NULL;
返回值:成功不返回。
用法: execlp("ls","ls","-l",NULL);
execl一般用于执行用户自定义的的应用程序
execlp一般用于执行系统命令,可以直接写命令名字,不写路径