发信人: 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]