C语言学习笔记-进程和系统调用

一.使用system系统调用函数linux

system()接收一个字符串参数,并把它当成命令执行数组

例如:编辑器

system("dir D:")打印D盘内容函数

system("gedit")在linux中启动编辑器性能

system("say 'End of line'") 在mac上阅读文本spa

二.使用elec()系统调用函数进程

elec函数位于unistd.h的头文件中,该函数调用进程成功时,系统会中止运行当前程序,去运行调用的程序。字符串

elecl() = 参数列表get

elecle()=参数列表+环境变量it

eleclp()=参数列表+搜索PATH

elecv()=参数数组

elecve()=参数数组+环境变量

elecvp()=参数数组+搜索PATH

在使用elec()函数时应该使用NULL结束参数列表

可使用getenv()函数读取环境变量

三.errno变量

errno变量是定义在errno.h中的全局变量

exec函数调用出错会返回-1,系统调用函数出错的同时将errno变量设为错误码

errno的标准错误码:

EPERM=1 不容许操做

ENOENT=2 没有该文件或目录

ESRCH=3 没有该进程

可使用strerror将错误码转换为一条消息

puts(strerrot(errno));

四.使用fork()克隆进程

使用fork()函数复制当前进程

fork函数被声明在unistd.h头文件中

在成功运行exec()后会替换掉当前进程,使用fork函数复制当前进程并运行exec建立子进程,便于父进程中实现原程序的循环

使用方法:

pid_t pid=fork()

fork会返回一个整数为子进程返回0,为父进程返回一个正数,父进程将接收子进程的进程标识符

pid_t函数用于存放进程标识符

使用fork()+exec()组合,建立并运行独立进程,不但能更好的利用现有软件,并且还能提升程序的性能。

相关文章
相关标签/搜索