BBS程序设计3--常用函数(下)

类别:软件工程 点击:0 评论:0 推荐:

发信人: loveyou (独梦人), 信区: Das_Room
标  题: BBS程序设计3--常用函数(下)
发信站: 锦城驿站 (Wed Apr 26 14:26:07 2000), 转信

BBS自己定义的函数很多.不可以都说.常用的也不可能都说完.关于哪方面的
您可以自己去找找,看看人家是怎么写的,怎么用的.我现在只记得一点点而已
大多数都是在用到时到程序里面去查的.
===================================================================

securityreport()

    这个就是进行系统记录的函数。如当您删除某个账号,那么就会在系统
安全记录讨论区内自动产生这个记录,就是调用的这个函数。
    例子:  当您确定删除讨论区后,要写上
                char secu[STRLEN];

                sprintf(secu,"删除讨论区:",binfo.filename);

                securityreport(secu);

    则删除讨论区test后就会在security讨论区中看到文章,题目是“删除
    讨论区:text”,内容是您的各种资料。
===================================================================

show_help(HELP文件名)
show_help(HELP文件名)
   BBS系统的help文件一般放到bbshome的help目录里面.您可以去看看.
   也就是一般的/home/bbs/help目录里.
   如我想在用户聊天时按CTRL+H就可以查看help:
   首先我在help目录里用编辑器编辑一文件: onchathelp 里面写上帮助信息
   然后在聊天的程序talk.c文件里的do_talk_char()函数里(你可以查找一下)
   switch语句里加入:
             case Ctrl('H'):
                  show_help("help/onchathelp");
                  return;
    这样就可以了.当用户在聊天时按下ctrl+h时就会显示你的onchathelp文件
    内容.BBS程序里缺省的当前目录就是BBSHOME的根目录,所以你不用写
      /home/bbs/help/onchathelp 而直接写 help/onchathelp就可以了
=====================================================================
m_send(用户ID)
    给某用户发信.
=====================================================================
do_sendmsg()
    这是发信息的函数,它的参数有点复杂.不是很清楚的话不要用.
    我大概说一下:
    要给站上某人发信息,要先得到它的user_info结构.(自已学吧)
    如得到某人user_info结构保存在user_record里面,那你就可以这样发信息:
      do_sendmsg(user_record,NULL,0,user_record.pid);
      do_sendmsg(user_record,NULL,0,user_record.pid);
                                    ~~~~~~~~~~~~~~~这是保存在user_info
                                                   结构里的用户进程.
======================================================================
getdata()
   这个可是个很有用的函数,它的参数也很多,但不难.记住就行了.
   它在某个确定位置得到用户的输入.
        getdata(0,0,"请输入密码:",passbuf,15,NOECHO,NULL,YEA);
              0,0指在X,Y处显示"请输入密码:"等待用户输入.
              NOECHO指用户的输入以'*'号显示,也可以用DOECHO正常显示.
              NULL指用户什么也不输入,而直接回车时的缺省值.
              passbuf是用来保存用户所输入的内容,你可以在下面接着用
                 它来判断用户输入了什么.
=====================================================================
pressanykey()
    这个函数没有参数.是指要求用户按任意键继续.
    如你在BBS查询收到的信息,当翻到最后一屏时最下面显示的是:
             按任意键继续...
    这就是用了pressanykey()函数的结果.
=====================================================================
modify_user_mode()
    它是定义当前用户的状态.只有一个参数.
    例: 当用户开始聊天时写上 modify_user_mode( TALK );
    例: 当用户开始聊天时写上 modify_user_mode( TALK );
    这个"TALK"是在include目录的modes.h文件里定义了的.
    您可以自己查看.
=====================================================================
setuserfile()
    返回用户的home目录里的某文件的全路径名.
    (* 我先说明一下:用户的home所在位置就在BBSHOME目录下的
       home/用户ID的第一个字母大写/用户代号/ 这个目录里保
       存了每个用户的说明档,注册资料,未保存的信息等等 *)
    例子: 如想显示用户收到的信息
             chat fname[STRLEN];
             setuserfile(fname,"msgfile");
             clear();
             modify_user_mode( LOOKMSGS );
             if( dashf(fname) ) {
                   ansimore(fname,YEA);
                   clear()
             } else {
                   move(5,30);

                   prints("没有信息存在");
                   pressanykey();
             }
     这程序很精典,BBS常用的函数用到很多.
                   move(5,30);
     ansimore()是显示一文件内容,这里fname保存的就是信息文件的全路径名.
     msgfile是放在用户HOME目录里的文件,里面保存的是用户收到过的信息.
     dashf(fname)是判断fname保存的路径的文件是否存在,如存在返回1.
========================================================================
BBS自己特有的函数还有很多很多,你可以多看看程序.我现在只能想起这些,还有
很多,以后用到时我再讲解一下吧.

--
※ 来源:·梅陇客栈 bbs.ecust.edu.cn·[FROM: 211.144.72.160]

本文地址:http://com.8s8s.com/it/it32390.htm