2019独角兽企业重金招聘Python工程师标准>>>

用过Unix/Linux的童鞋都不会对#!/bin/sh感到陌生。我们都知道sh是shell的解释器的意思。但是对于解释器这东西就感到很神秘。其实解释器就是一个可执行的文件而已,我们也能够自己建造一个简单的解释器。

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)运行出结果。

结果分析:由于对于解释器echoarg来说,其作用就是返回所有的参数。

使用#!标示的文件第一行,其实就是调用exce函数执行可执行文件echoarg和其参数,然后就是exce的参数。由于在上图中是直接运行./callEchoarg.e,所以只有excel("./callEchoarg.e",null)(此处表达只用于理解,看官莫较真,如果有读者知道确切的运行方式请指正,不胜感激!)。

由于调用了可执行文件/home/Daniel/apue.2e/echoarg,这相当于直接执行/home/Daniel/apue.2e/echoarg,所以/home/Daniel/apue.2e/echoarg是第一个参数,而其后紧跟的foo是第二个参数。这时才轮到./callEchoarg.e文件作为参数(此处不甚理解,待补充)。

以上就是自建简单解释器的过程以及运行时参数情况的说明。欢迎指正。

转载于:https://my.oschina.net/DanielLee/blog/179675

APUE第八章学习札记之自建简单解释器以及参数分析相关推荐

  1. 炼数成金Tensorflow学习笔记之2.4_Tensorflow简单示例

    炼数成金Tensorflow学习笔记之2.4_Tensorflow简单示例 代码及分析 代码及分析 # -*- coding: utf-8 -*- """ Created ...

  2. MongoDB学习札记

    本文参考地址: http://www.codefrom.com/p/mongodb http://www.cnblogs.com/spnt/archive/2012/07/25/2608057.htm ...

  3. Linux_《Linux命令行与shell脚本编程大全》第十八章学习总结

    时间:2017年12月04日星期一 说明:本文部分内容均摘取自书籍<Linux命令行与shell脚本编程大全>,版权归原作者所有.<Linux命令行与shell脚本编程大全>( ...

  4. MongoDB学习札记第六篇之主从复制

    mongo系列文章请看http://www.codefrom.com/p/mongodb 环境准备: ubuntu12.0.4 mongodb3.0.3 主从复制是MongoDB中最常见的复制方式.这 ...

  5. Python学习笔记:常用内建模块7XML

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  6. Python学习笔记:常用内建模块5

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  7. Python学习笔记:常用内建模块2:collections

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  8. 在Marketplace上销售应用【WP7学习札记之十八】

    Maketplace规则: ◇[1]Maketplace是唯一发布应用程序的地方: ◇[2]用户能在Maketplace上购买和部署应用程序: ◇[3]每个开发者可以解锁3台手机,这样开发者可以编写和 ...

  9. 隔离存取空间IsolatedStorage【WP7学习札记之十】

    WP7禁止应用访问用户手机中的文件(和Silverlight相关概念相同~),如果应用有将一些数据写入文件,然后再把文件读出来的需求,可以使用隔离存储空间(独立存储空间.IsolatedStorage ...

最新文章

  1. SAP2014年最新版本EHP7安装经验分享
  2. EhCache的配置
  3. Ubuntu-16-04-编译-Caffe-SSD
  4. [css] 用css创建一个三角形,并简述原理
  5. 华为荣耀9x怎么解账户锁_荣耀X10顶配与30S最低配形成200元的价差,我觉得这样是最好的...
  6. 女子800米跑进4分30秒才合格,茅台回应应聘者需体测...
  7. 深度学习主流框架介绍(PyTorch、TensorFlow、Keras、Caffe、Theano、MXNET)
  8. (转)详解HTML网页源码的charset格式
  9. java下载execl优化_Java内存优化之POI Excel(二)
  10. PPT幻灯片放映时不显示视频(旁白)
  11. 【JavaScript联系练习】实现一个打点计时器
  12. 如何建立微信微社区?
  13. 晒晒那些我在云栖社区获得的奖品
  14. YouTube营销活动方案
  15. 国标GB/T28181视频流媒体服务器4G摄像头视频无插件直播方案对接过程中前端设备正常上线但视频无法播放问题解决
  16. 机器学习--特征降维方法总结
  17. 计算机软考证书全面分析
  18. 你的广告语,为什么用户记不住?
  19. 多相位图像插值算法(Lanczos、sinc)
  20. 为什么突然变乱码_这样的整理才能结束家里很快变乱的局面。而且整理还能改变运气...

热门文章

  1. weblogic10异常:org.hibernate.hql.ast.HqlToken
  2. dr.com linux源码安装,Linux在不采用坑爹的Dr.com客户端下的连网方式(亲测可行 ,简单易行)...
  3. Oracle vs MySQL
  4. MySQL高级 - 锁 - MySQL对锁的支持
  5. Nacos与Eureka的区别有哪些?
  6. 客户端负载均衡?? 服务端负载均衡??
  7. 服务端支持的session
  8. 缓存-分布式锁-Redisson-读写锁补充
  9. 角色操作-查询所有角色流程分析
  10. redis的安装及springDataRedis