51Testing软件测试论坛

标题: 有段脚本出错.请高手解决.谢谢 [打印本页]

作者: jiejesse    时间: 2008-9-6 11:28
标题: 有段脚本出错.请高手解决.谢谢
int count, total = 0;
char buffer[1000];
long file_stream;
char *filename = "d:\\Program Files\\LoadRunner7.8\\scripts\\readme.txt";
     char *p, str[] = "this is the first line of the log file";
     int c;

vuser_init()
{
       
                       
        if ((file_stream = fopen(filename, "w+b") == NULL)  ) {

      lr_error_message("Cannot open %s", filename);
      return -1;
     }
        p = str;
     /* p points to the first character in str */

     while ((*p != NULL) && fputc(*(p++), filename) != -1); /* use -1 for EOF */

     fclose(filename);
}


报出错误是:Error: C-interpreter run time error: vuser_init.c (23):  Error -- memory violation : Exception ACCESS_VIOLATION received.

那位知道解决请指教.刚学测试...
作者: jiejesse    时间: 2008-9-6 11:55
别沉了.自己顶一下.在线等答案..
作者: Polaris_Du    时间: 2008-9-6 12:35
3个错误
1、if ((file_stream = fopen(filename, "w+b") == NULL))
分析下这个IF条件,拆开后是  file_stream = fopen(filename, "w+b") == NULL
这个执行结果,其实是 file_stream =fopen(filename, "w+b") == NULL
所以这里要改成 if ((file_stream = fopen(filename, "w+b") ) == NULL)

2、fputc(*(p++), filename) != -1
fputc 的用法:int fputc ( int c, FILE *file_pointer );
第二个参数是文件类型的指针,所以你要改成  fputc(*(p++), file_stream ) != -1

3、fclose(filename);
同2,要关闭一个文件流指针,所以也得改成fclose(file_stream );


作者: jiejesse    时间: 2008-9-6 12:49
谢了.看来是我不够细致....
作者: boymarco    时间: 2008-9-9 09:13
楼上说得很对,一般报这样的错误是c语法错误
作者: AJan1000    时间: 2008-9-9 10:41
原帖由 jiejesse 于 2008-9-6 11:28 发表
int count, total = 0;
char buffer[1000];
long file_stream;
char *filename = "d:\\Program Files\\LoadRunner7.8\\scripts\\readme.txt";
     char *p, str[] = "this is the first line of the log file"; ...



看了LZ的代码,又看了LR的帮助文档,有个语法方面的问题想请教LZ。
就是变量file_stream 类型为什么声明为Long型的呢?
1.fputc是将指针指向的str内容写到fileStream 当中的,Char型转变为LONG型,值不会改变么?

2.另外在LR当中使用文件命令的话,要在头文件当中声明什么头文件呢?




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2