mysql中sql_acl.cc文件里的一个小问题(mysql 3.23.45)

Query_log_event qinfo(thd, buff);
qinfo.q_len =
my_sprintf(buff,
(buff,"SET PASSWORD FOR \"%-.120s\"@\"%-.120s\"=\"%-.120s\"",
acl_user->user,
acl_user->host.hostname ? acl_user->host.hostname : "",
new_password));
mysql_update_log.write(thd,buff,qinfo.q_len);
mysql_bin_log.write(&qinfo);
return 0;

那个“%-.120s”是什么意思啊
c++

2个回答

 应该是表示参数
也就是将acl_user->user 放在第一个 \"%-.120s\" 出现的位置
acl_user->host.hostname ? acl_user->host.hostname : "" 放在第二个,以此类推
得到 
set password for 用户名@localhost = password(‘新密码’);

my_sprintf虽然我们不清楚它怎么定义的,但是应该类似系统函数sprintf
也就是提供一个字符串的模板(相当于填空题)以及若干参数,将参数填入模板的空格, 合成一个字符串。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问