解析器文件

来源:互联网 发布:薄膜键盘推荐 知乎 编辑:程序博客网 时间:2024/05/09 06:25


基本概念:

解释器是文本文件,其起始行的形式是:
#! pathname [optional-argument]


在惊叹号和pathname之间的空格是可任选的。最常见的是以下列行开始:
#! /bin/sh


pathname通常是个绝对路径名,对它不进行什么特殊的处理,对这种文件的识别是由内核作为exec系统调用处理的一部分来完成的。内核使调用exec函数的进程实际执行的并不是该解析器文件,而是在该解释器文件第一行中pathname所指定的文件。一定要将解析器文件(文件文件,它以#!开头)和解析器(由该解析器文件第一行中的pathname指定)区分开来。


一个简单的解析器文件:printf.sh

#! /bin/shecho "hello world"

a) 这个解析器文件的解析器就是第一行中的/bin/sh
b) 通过exec来执行printf.sh时,类似执行了/bin/sh printf.sh
c) 如果缺少第一行,通过exec来执行时,会报错(execl error: Exec format error)


调用exec的例子可参考文章:fork编程之exec函数详解


End;

0 0
原创粉丝点击