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

一.使用system系统调用函数

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

例如:

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

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

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

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

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

elecl() = 参数列表

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

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()组合,创建并运行独立进程,不但能更好的利用现有软件,而且还能提高程序的性能。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值