2012年8月14日

摘要: 在编写shell scripts时,经常会用到括号,各种括号,各种用法。一、括号、圆括号() 1、单小括号。 ①命令组。括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。 ②命令替换。等同于`cmd`,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令。有些shell不支持,如tcsh。 ③用于初始化数组。如:array=(a b c d) 2、双小括号。 ①整数扩展。这种扩展计算是整数型的... 阅读全文
posted @ 2012-08-14 22:25 山本二十八 阅读(4547) 评论(1) 推荐(0) 编辑
摘要: 在unix中,相应的头文件为<stdarg.h>【函数参数在堆栈中的分步】 在进程中,堆栈地址是从高到低分配的.当执行一个函数的时候,将参数列表入栈,压入堆栈的高地址部分,然后入栈函数的返回地址,接着入栈函数的执行代码,这个入栈过程,堆栈地址不断递减,一些黑客就是在堆栈中修改函数返回地址,执行自己的代码来达到执行自己插入的代码段的目的. 总之,函数在堆栈中的分布情况是:地址从高到低,依次是:函数参数列表,函数返回地址,函数执行代码段. 堆栈中,各个函数的分布情况是倒序的.即最后一个参数在列表中地址最高部分,第一个参数在列表地址的最低部分.参数在堆栈中的分布情况如下: 最后... 阅读全文
posted @ 2012-08-14 19:22 山本二十八 阅读(349) 评论(0) 推荐(0) 编辑

导航