2013-08-23 22 views
1

我正在编写一些函数,它将在生产代码中使用文件描述符参数进行调用。测试使用文件描述符的C函数

在测试过程中,如何“注入”一些能让我确认函数能够打出lseek,write等的打算调用?

+0

什么操作系统(S),你定位?不幸的是,C并没有像Java那样简单。 – chrylis

+0

您可以使用调试器。 – 2013-08-23 12:30:18

+0

@chrulis - Linux的 – fadedbee

回答

2

既然你是在Linux上,你可以简单地定义你想你的测试程序里面存根功能。链接器将认为这些函数是本地的,忽略那些将被动态加载的函数。
我用gcc在Linux和Solaris上成功地使用了它。

确保存储它们被调用时,并没有把断言存根函数中的参数,这会让他们更加重用。

2

根据您的操作系统上,最好的办法可能是编写会动态中链接,并截取到你要找的标准功能的所谓的“垫片”库中,报告了带外的测试线束。 libtrash库是一个很好的例子,它是如何工作的,代码是可读的;它通过拦截(一些)到unlink的调用并将链接移动到垃圾桶目录来实现Linux的“垃圾桶”。