Mar 23, 2010
有时候使用rm命令的时候觉得有个删除提示比较保险;但真的加上了,
在使用的大多数时候又觉得比较麻烦。这其实可通过rm的-i选项来控制的.
以下是用rm –help命令查出来的
用法:rm [选项]… 文件…
删除 (unlink) 文件。
-f, –force 强制删除。忽略不存在的文件,不提示确认
-i 在删除前需要确认
-I 在删除超过三个文件或者递归删除前要求确认。此选项比-i 提
示内容更少,但同样可以阻止大多数错误发生
–interactive[=WHEN] 根据指定的WHEN 进行确认提示:never,once (-I),
或者always (-i)。如果此参数不加WHEN 则总是提示
–one-file-system 递归删除一个层级时,跳过所有不符合命令行参
数的文件系统上的文件
[...]
Mar 23, 2010
asmlinkage long sys_nice(int increment)
“asmlinkage” 是在 i386 system call 实作中相当重要的一个 gcc 标签(tag)。
当 system call handler 要呼叫相对应的 system call routine 时,便将一般用途暂存器的值 push 到 stack 里,因此 system call routine 就要由 stack 来读取 system call handler 传递的参数。这就是 asmlinkage 标签的用意。
system call handler 是 assembly code,system call routine(例如:sys_nice)是 C code,当 assembly code 呼叫 C function,并且是以 stack 方式传参数(parameter)时,在 C [...]
Mar 23, 2010
背景
项目的 自动化测试中已经使用了基于Python 脚本的框架,自动化过程中最关键的问题就是如何实现桩模块。运用 Python 强大的功能,实现任何桩模块都是可能的,但是是否必须完全使用 Python 实现模块逻辑,成本是一个决定性因素。在桩模块逻辑简单的情况下,使用 Python 模拟模块逻辑不但使自动化测试的结构清晰,也具有更好的灵活性,但是如果桩模块逻辑复杂,实现起来可能要耗费很大的成本,也容易由于桩模块逻辑与实际不符导致测试结果不可信。在这种情况下,如果能够借用 RD 开发的某些代码段 / 库,将会对测试自动化带来很多效益。
另外,在Python 中调用 C/C++ 代码的方法也可能应用于 C/C++ 库的测试中,这种测试方法的可行性还有待研究。
以下总结出几种在Python 中调用 C/C++ 代码的方法
使用ctypes 模块调用 C 动态库
从Python2.5 开始, Python 开始提供 ctypes 模块来提供对 C 语言编译的动态库文件的调用。注意, 这里特指C 的动态库 ,用C++ 编译的动态库 ctypes 虽然能够加载,但调用时的函数名已经由于 C++ 的重载特性被加以修改,难以调用。 使用 ctypes 调用 C 动态库的好处在于不用进行额外的开发,可以直接使用编译好的动态库。 ctypes 提供了完整的 C 类型封装,也支持自定义类型,大大减少在调用过程中的工作量。 ctypes 的使用很简单,只需熟悉 python 封装与 C [...]