- 论坛徽章:
- 0
|
原帖由 ecjtubaowp 于 2008-9-3 12:01 发表
恩,感谢讲解,最后一个问题是下面的代码打开文件,文件中有内容吗,没看到前面有初始化的地方?
new_fp = fopen(pDev->result_file, "r"
if(!fp)
{
&n ...
呵呵,下次记得插入代码时用code风格扩起来,我帮你改了2次了:wink: 这样方便阅读
对fopen和fprintf两个文件我都进行解释吧。
首先:在函数- int do_work_dev(struct dev_t *pDev, FILE* fp)
复制代码 中,我们是把该设备的shell执行结果重定向到
文件中了,这个从构造shell语句的代码中能看到,你可以打开语句
sprintf(szcmd, "expect ./%s %s %s \"echo '%s'; %s\" > %s ",
SHELL_FILE, szip, cme_config.password, MAGIC_STRING, cme_config.command, pDev->result_file); |
下面一行的printf,看看这个标准的shell语句。
所以- new_fp = fopen(pDev->result_file, "r");
复制代码 其实是读这个Shell执行结果的文件的。
其次 fprintf的文件是线程打开的,每个线程一个,专门存储该线程执行结果的文件。
[ 本帖最后由 duanjigang 于 2008-9-3 13:21 编辑 ] |
|