轉載--Linux解釋器原理
引言
使用Shell進行工作的人們對Unix/Linux下的Shell編程都很熟悉,在所有的Shell編程的書中都會提到#!/bin/bash,而這裡到底包含了些什麼?對操作系統而言,這一行字符串意味著什麼?你可能會說,不就是會讓/bin/bash程序來解釋這個腳本程序嗎?當然你是對的,看看我們的標題,這裡我們談談解釋器,讓我們一起來看看腳本文件裡的第一句到底對系統而言意味著什麼。但有一點我們可先明確一下,所謂解釋器就是指#!行後面的可執行的程序。
一、我們從exec族函數談起
如果你從不寫C程序,可能需要對本節的內容看得更為仔細並且試驗一下。
代碼:
#include
extern char **environ;
int execl(const char *path, const char *arg, ...);
int execlp(const char *file, const char *arg, ...);
int execle(const char *path, const char *arg , ..., char * const envp[]);
int execv(const char *path, char *const argv[]);
int execvp(const char *file, char *const argv[]);