+ -
当前位置:首页 → 问答吧 → 频繁写文件会导致telnet终端退出?

频繁写文件会导致telnet终端退出?

时间:2010-08-24

来源:互联网

本帖最后由 mathieu 于 2010-08-24 16:25 编辑
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <unistd.h>

  4. int main()
  5. {
  6.         FILE *fp;
  7.         char tmp[50];
  8.         int ret;
  9.        
  10.         memset(tmp, '\0', 50);
  11.         strcpy(tmp, "0");
  12.        
  13.         fp = fopen("/tmp/position", "w+");
  14.         if(fp == NULL)
  15.                 return -1;
  16.         fwrite(tmp, 50, 1, fp);

  17.         while(1)
  18.         {
  19.                 char offset[50] = {0};
  20.                 sprintf(offset, "%d", rand());
  21.                 fseek(fp, 0, SEEK_SET);
  22.                 fwrite(offset, 50, 1, fp);
  23.                 usleep(100);
  24.         }
  25.        
  26.         fclose(fp);
  27.         return 0;
  28. }
复制代码
发现个奇怪的现象,在板子上运行上面的代码,用xp自带的telnet终端登录到板子上,运行一段时间后,发现telnet被强制退出,马上再次登录也会被拒绝,必须要等几分钟才能重新登录,为什么?

作者: mathieu   发布时间: 2010-08-24

要是不允许这段程序呢?也退出?

作者: efolzl   发布时间: 2010-08-24

是不是在while里面不断的申请一个新的数组,导致了最后栈溢出而出现异常?修改了程序,重新试验中。。。

作者: mathieu   发布时间: 2010-08-24

结果还是退出

作者: mathieu   发布时间: 2010-08-24