APUE第八章学习札记之自建简单解释器以及参数分析
2019獨角獸企業(yè)重金招聘Python工程師標準>>>
用過Unix/Linux的童鞋都不會對#!/bin/sh感到陌生。我們都知道sh是shell的解釋器的意思。但是對于解釋器這東西就感到很神秘。其實解釋器就是一個可執(zhí)行的文件而已,我們也能夠自己建造一個簡單的解釋器。
1)建立echoarg.c。
#include "apue.h"
int
main(int argc, char *argv[])
{
int i;
for (i = 0; i < argc; i++) /* echo all command-line args */
printf("argv[%d]: %s\n", i, argv[i]);
exit(0);
}
2)編譯echoarg.c為echoarg。
3)建立callEchoarg.e文件。
這個文件的第一行說明使用/home/Daniel/apue.2e/echoarg作為解釋器解釋本文件的代碼。
4)運行出結(jié)果。
結(jié)果分析:由于對于解釋器echoarg來說,其作用就是返回所有的參數(shù)。
使用#!標示的文件第一行,其實就是調(diào)用exce函數(shù)執(zhí)行可執(zhí)行文件echoarg和其參數(shù),然后就是exce的參數(shù)。由于在上圖中是直接運行./callEchoarg.e,所以只有excel("./callEchoarg.e",null)(此處表達只用于理解,看官莫較真,如果有讀者知道確切的運行方式請指正,不勝感激!)。
由于調(diào)用了可執(zhí)行文件/home/Daniel/apue.2e/echoarg,這相當于直接執(zhí)行/home/Daniel/apue.2e/echoarg,所以/home/Daniel/apue.2e/echoarg是第一個參數(shù),而其后緊跟的foo是第二個參數(shù)。這時才輪到./callEchoarg.e文件作為參數(shù)(此處不甚理解,待補充)。
以上就是自建簡單解釋器的過程以及運行時參數(shù)情況的說明。歡迎指正。
轉(zhuǎn)載于:https://my.oschina.net/DanielLee/blog/179675
超強干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的APUE第八章学习札记之自建简单解释器以及参数分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 给thinkphp加个分页样式
- 下一篇: Kung fu