LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1050|回复: 6

哪位大哥,可以讲一下以下的代码在做什么?

[复制链接]
发表于 2004-1-15 19:14:43 | 显示全部楼层 |阅读模式
小弟正在研究perlOICQ,不明白其加密过程。哪位大哥,可以讲一下以下的代码在做什么?
特别是sv_undef,sv_nemortal(),SvGROW等等涉及到SV的东东,它们到底是什么呀?
  1. void
  2. crypt(input, key, dir, output)
  3.       unsigned char * input
  4.       unsigned char * key
  5.       int  dir
  6.       SV * output
  7.     CODE:
  8.     {
  9.         if (output ==[color=red] &sv_undef[/color]) output = [color=red]sv_newmortal[/color]();
  10.         tiny_crypt(input, key, dir, (unsigned long *)[color=red]SvGROW[/color](output, 8));
  11.         [color=red]SvCUR_set[/color](output, 8);
  12.         [color=red]*SvEND[/color](output) = '\0';
  13.         (void) [color=red]SvPOK_only[/color](output);
  14.         [color=red]SvTAINT[/color](output);
  15.         [color=red]ST[/color](0) = output;
  16.     }
复制代码
发表于 2004-1-15 20:47:37 | 显示全部楼层
这是C程序,不是perl ,红色部分是作者自定义的函数。具体知道什么意思,要贴出源代码才看得懂。
 楼主| 发表于 2004-1-15 20:51:53 | 显示全部楼层
不是作者定义的函数。可能是perl的C接口。
 楼主| 发表于 2004-1-15 20:52:55 | 显示全部楼层
刚才找了一下,见这里:http://www.chinaipp.com/support/perl/perlguts.html
不过还是不大懂。
发表于 2004-1-15 21:11:38 | 显示全部楼层
根据楼主给的链接找不到上面的程序段,请提供直接的连接
 楼主| 发表于 2004-1-16 10:33:17 | 显示全部楼层
呵呵,原程序在perlOICQ里。
我在试图把它转成C++。主要的问题是怎么用C++来描述perl里面那么灵活的变量啊!唉,会死人的!
发表于 2004-1-16 14:54:40 | 显示全部楼层
晕了。。。不贴出源代码,不能帮你!!!
PS:C++我不懂,最好去程序设计版问。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表