《unix环境编程》解释器文件

书上介绍的,是否一定需要解释器文件,说的很好。

解释器确实使用户得到效率方面的好处,其代价是内核的额外开销,因为识别解释器文件的是内核。

解释器文件的必要性:

1. 有些程序是用脚本编写的,解释器文件可以将这一事实隐藏起来,也就是说解释器文件本身是个程序,可以用exec装入执行。

2. 解释器脚本在效率方面也提供了好处。例如一个awk脚本,将其包装在shell脚本中:

awk 'BEGIN{

	for(i=0; i<ARGC; i++)

		printf "ARGV[%d] = %s\n", i, ARGV[i]

	exit

}' $*

若用execlp执行此文件,这是一个shell脚本,执行/bin/sh,并以该文件的路径名作为参数,shell为了运行awk程序,会调用fork,exec,wait,因此用一个shell脚本代替解释器脚本需要更多的开销。

这就是说,shell脚本是一种解释器脚本,脚本文件开头添加 #! /bin/sh 就可以把解释器脚本作为shell脚本。

3. 解释器可以使用其他的解释程序运行shell脚本。

解释器文件使代码和脚本可以联系起来,代码可以用exec执行一个脚本文件,这样允许在代码外修改脚本就可以实现代码的不同操作。解释器脚本是一种可修改的可执行程序,但我们没办法修改编译得到可执行文件。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值