- 主题:读写userdata应该有什么函数?
读的话是read_user_memo还是read_userdata呢?两者在获得userdata这个数据结构上有无区别?
写的话都是用write_userdata吗?
--
FROM 61.167.60.*
我看了代码,write_userdata写的是.userdata,read_userdata写的是.userdata,而read_user_memo读的是usermemo,那么这个函数有没有对应的写的函数呢?
如果我要修改某一个userdata中的字段,应该用哪个函数?我看了newmain_single.c中用的是read_user_memo的方式:
631 if (read_user_memo(getCurrentUser()->userid, &getSession()->currentmemo) <= 0) {
【 在 luckwithme (Marvel) 的大作中提到: 】
: 标 题: 读写userdata应该有什么函数?
: 发信站: 水木社区 (Wed Sep 17 13:10:52 2008), 转信
:
: 读的话是read_user_memo还是read_userdata呢?两者在获得userdata这个数据结构上有无区别?
: 写的话都是用write_userdata吗?
:
: --
:
※ 修改:·luckwithme 于 Sep 17 13:25:51 2008 修改本文·[FROM: 61.167.60.*]
: ※ 来源:·水木社区 newsmth.net·[FROM: 61.167.60.*]
--
修改:luckwithme FROM 61.167.60.*
FROM 61.167.60.*
我要修改reg_email,使用的是read_userdata和write_userdata,其实已经成功了。.userdata中已经修改了,但是userdemo中却还是没变。
问题是telent的时候,login_query中调用的是read_user_memo,也就是读取的是userdemo中的数据,这样子,reg_email就不是我想要的值了
【 在 fancyrabbit (fancy★Job-Hunting...★喵) 的大作中提到: 】
: 标 题: Re: 读写userdata应该有什么函数?
: 发信站: 水木社区 (Wed Sep 17 13:41:29 2008), 转信
:
: .userdata 和 usermemo 应该内容一样,后者用来 mmap
这两者如何保持一致呢?
int write_userdata(const char *userid, struct userdata *ud)
{
char datafile[STRLEN];
int fd;
if ((userid == NULL || userid[0] == '\0') || ud == NULL)
return -1;
sethomefile(datafile, userid, USERDATA);
if ((fd = open(datafile, O_WRONLY, 0644)) < 0)
return -1;
write(fd, ud, sizeof(struct userdata));
close(fd);
return 0;
}
这里只是写到了.userdata而已
:
: 没看懂你要改啥?你可以参考一下userinfo.c里修改用户资料的部分 ...
: 【 在 luckwithme (Marvel) 的大作中提到: 】
: : 我看了代码,write_userdata写的是.userdata,read_userdata写的是.userdata,而read_user_memo读的是usermemo,那么这个函数有没有对应的写的函数呢?
: : 如果我要修改某一个userdata中的字段,应该用哪个函数?我看了newmain_single.c中用的是read_user_memo的方式:
: : 631 if (read_user_memo(getCurrentUser()->userid, &getSession()->currentmemo) <= 0) {
: : ...................
:
: --
: 她说,我大概是一只鸟。充满了警觉,不容易停留。
: 所以一直在飞。
: 我总是以为自己是会对流失的时间和往事习惯的。
: 不管在哪里。碰到谁。以什么样的方式结束。
:
:
: ※ 来源:·水木社区 newsmth.net·[FROM: 211.151.94.*]
--
FROM 61.167.60.*
如果这样子的话,是不是说.userdata和userdemo的同步需要手动添加?
src/register.c中好像有很多只是写了write_userdata,这样会不会有问题?
【 在 fancyrabbit (fancy★Job-Hunting...★喵) 的大作中提到: 】
: 标 题: Re: 读写userdata应该有什么函数?
: 发信站: 水木社区 (Wed Sep 17 16:52:46 2008), 转信
:
: 。。看 userinfo.c 里
:
:
: 给你摘一段出来
:
: if(write_userdata(urec->userid,&vdata)==-1){
: MU_PUT((MU_ITEM+2),MU_MSG(R,"回写用户数据时发生致命错误..."));
: return -9;
: }
: j=read_user_memo(urec->userid,&memo);
: if(!(j<0)&&(j!=sizeof(struct usermemo)))
: end_mmapfile(memo,sizeof(struct usermemo),-1);
: if(j==sizeof(struct usermemo)){
: memcpy(&(memo->ud),&vdata,sizeof(struct userdata));
: end_mmapfile(memo,sizeof(struct usermemo),-1);
: }
: else{
: sethomefile(buf,urec->userid,"usermemo");
: unlink(buf);
: }
: 【 在 luckwithme (Marvel) 的大作中提到: 】
: : 我要修改reg_email,使用的是read_userdata和write_userdata,其实已经成功了。.userdata中已经修改了,但是userdemo中却还是没变。
: : 问题是telent的时候,login_query中调用的是read_user_memo,也就是读取的是userdemo中的数据,这样子,reg_email就不是我想要的值了
: : 这两者如何保持一致呢?
: : ...................
:
: --
: 她说,我大概是一只鸟。充满了警觉,不容易停留。
: 所以一直在飞。
: 我总是以为自己是会对流失的时间和往事习惯的。
: 不管在哪里。碰到谁。以什么样的方式结束。
:
:
: ※ 来源:·水木社区 newsmth.net·[FROM: 211.151.94.*]
--
FROM 61.167.60.*
我只是因为程序调不对劲所以研究了一下,但是不太明白这两个文件有什么关系
【 在 fancyrabbit (fancy★Job-Hunting...★喵) 的大作中提到: 】
: 标 题: Re: 读写userdata应该有什么函数?
: 发信站: 水木社区 (Wed Sep 17 17:04:04 2008), 转信
:
: 嫌麻烦就直接咔嚓掉usermemo完事。
: 【 在 luckwithme (Marvel) 的大作中提到: 】
: : 如果这样子的话,是不是说.userdata和userdemo的同步需要手动添加?
: : src/register.c中好像有很多只是写了write_userdata,这样会不会有问题?
:
:
: --
: 她说,我大概是一只鸟。充满了警觉,不容易停留。
: 所以一直在飞。
: 我总是以为自己是会对流失的时间和往事习惯的。
: 不管在哪里。碰到谁。以什么样的方式结束。
:
:
: ※ 来源:·水木社区 newsmth.net·[FROM: 211.151.94.*]
--
FROM 61.167.60.*