system()接收一个字符串参数,并把它当成命令执行
例如:
system("dir D:")打印D盘内容
system("gedit")在linux中启动编辑器
system("say 'End of line'") 在mac上阅读文本
二.使用elec()系统调用函数
elec函数位于unistd.h的头文件中,该函数调用进程成功时,系统会停止运行当前程序,去运行调用的程序。
elecl() = 参数列表
elecle()=参数列表+环境变量
eleclp()=参数列表+搜索PATH
扫描二维码关注公众号,回复:
7667711 查看本文章
elecv()=参数数组
elecve()=参数数组+环境变量
elecvp()=参数数组+搜索PATH
在使用elec()函数时应该使用NULL结束参数列表
可以使用getenv()函数读取环境变量
三.errno变量
errno变量是定义在errno.h中的全局变量
exec()函数调用出错会返回-1,系统调用再出错的同时将errno变量设为错误码
errno的标准错误码:
EPERM=1 不允许操作
ENOENT=2 没有该文件或目录
ESRCH=3 没有该进程
puts(strerrot(errno));
四.使用fork()克隆进程
使用fork()函数复制当前进程
在成功运行exec()后会替换掉当前进程,使用fork函数复制当前进程并运行exec创建子进程,便于父进程中实现原程序的循环
使用方法:
pid_t pid=fork()
fork会返回一个整数为子进程返回0,为父进程返回一个正数,父进程将接收子进程的进程标识符
pid_t函数用于存放进程标识符
使用fork()+exec()组合,创建并运行独立进程,不但能更好的利用现有软件,而且还能提高程序的性能。