jiejesse 发表于 2008-9-6 11:28:20

有段脚本出错.请高手解决.谢谢

int count, total = 0;
char buffer;
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:44

别沉了.自己顶一下.在线等答案..

Polaris_Du 发表于 2008-9-6 12:35:09

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:50

谢了.看来是我不够细致....

boymarco 发表于 2008-9-9 09:13:03

楼上说得很对,一般报这样的错误是c语法错误

AJan1000 发表于 2008-9-9 10:41:16

原帖由 jiejesse 于 2008-9-6 11:28 发表 http://bbs.51testing.com/images/common/back.gif
int count, total = 0;
char buffer;
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当中使用文件命令的话,要在头文件当中声明什么头文件呢?:)
页: [1]
查看完整版本: 有段脚本出错.请高手解决.谢谢