1. Json------API:
json grpjson;
//json.[key]=val;
grpjson["id"] = group.getId();
grpjson["groupname"] = group.getName();
grpjson["groupdesc"] = group.getDesc();
vector<string> userV;
grpjson["users"] = userV;
//序列化json对象
grpjson.dump();
//发送序列化
conn->send(response.dump());
2. MySQL:3306
//初始化数据库
_conn = mysql_init(nullptr);
// 释放数据库连接资源
mysql_close(_conn);
// 连接数据库
MYSQL *p = mysql_real_connect(_conn, server.c_str(), user.c_str(),
password.c_str(), dbname.c_str(), 3306, nullptr, 0);
mysql_query(_conn, "set names gbk");
// 更新操作
mysql_query(sql)
// 查询操作
MYSQL_RES *MySQL::query(string sql)
return mysql_use_result(_conn);
// 获取连接
return _conn;
mysql_init();//初始化
mysql_connect()//连接
mysql_update(sql)//更新
MYSQL_RES *res = mysql_query(sql);//查找
MYSQL_ROW row;//行信息
row = mysql_fetch_row(res)) != nullptr//下一行不为空
mysql_free_result(res);//释放连接
delete from offlinemessage where userid=%d";
select message from offlinemessage where userid = %d";
sprintf(sql, "insert into offlinemessage values(%d, '%s')", userid, msg.c_str());
update user set state = '%s' where id = %d;
3. Git:
一、基础配置
git config --global user.name "Your Name"
:设置全局用户名。git config --global user.email "your_email@example.com"
:设置全局用户邮箱。
二、初始化仓库
git init
:在当前目录创建一个新的 Git 仓库。
三、添加和提交文件
git add <file>
:将指定文件添加到暂存区。例如,git add index.html
。git add.
:将当前目录下的所有修改过的文件添加到暂存区。git commit -m "Commit message"
:提交暂存区的文件,并添加提交信息。例如,git commit -m "Added new feature"
。
四、查看状态和历史
git status
:查看当前仓库的状态,显示哪些文件被修改、哪些文件已暂存、哪些文件未被跟踪等。git log
:查看提交历史,显示每个提交的哈希值、作者、日期和提交信息。git log --oneline
:以简洁的方式显示提交历史,每个提交只显示一行信息。git diff
:查看工作区和暂存区之间的差异。git diff --staged
:查看暂存区和上一次提交之间的差异。
五、分支操作
git branch
:列出所有分支。git branch <branch_name>
:创建一个新分支。例如,git branch new-feature
。git checkout <branch_name>
:切换到指定分支。例如,git checkout new-feature
。git merge <branch_name>
:将指定分支合并到当前分支。例如,在主分支上执行git merge new-feature
将把"new-feature"分支合并到主分支。
六、远程仓库操作
git remote add <remote_name> <remote_url>
:添加一个远程仓库。例如,git remote add origin https://github.com/your_username/your_repo.git
。git push <remote_name> <branch_name>
:将本地分支推送到远程仓库。例如,git push origin main
将本地的"main"分支推送到名为"origin"的远程仓库。git pull <remote_name> <branch_name>
:从远程仓库拉取最新的更改并合并到当前分支。例如,git pull origin main
从"origin"远程仓库的"main"分支拉取更新。git clone <remote_url>
:克隆一个远程仓库到本地。例如,git clone https://github.com/your_username/your_repo.git
。
七、撤销操作
git reset <file>
:取消对指定文件的暂存,将其从暂存区移除并恢复到工作区的未暂存状态。git reset --hard <commit_hash>
:回退到指定的提交,丢弃自该提交之后的所有更改。
八、标签操作
git tag <tag_name>
:为当前提交创建一个轻量级标签。git tag -a <tag_name> -m "Tag message"
:创建一个带注释的标签,并添加标签信息。git push <remote_name> <tag_name>
:将标签推送到远程仓库。
4. Linux路径查询
find / -name "myfile.txt"
which mycommand 会查找可执行文件 mycommand 的路径
ls | grep myfile.txt
5. Gcc coru
生成Core文件相关命令(Linux)
ulimit
命令查看Core文件大小限制:
ulimit -c
返回值是0,代表不允许生成Core文件;
如果是一个数字(如1024),表示Core文件大小被限制为该数字KB)。
临时设置Core文件大小限制:
ulimit -c unlimited:
这条命令用于在当前终端会话中将Core文件大小限制设置为无限制
这样程序崩溃时就能够生成完整的Core文件。可能会占用大量的磁盘空间。
编辑limits.conf
文件相关命令(用于永久设置)
使用文本编辑器打开文件:
在Linux系统中,可以使用vi
或vim
来编辑/etc/security/limits.conf
文件。例如,使用vim /etc/security/limits.conf
命令打开文件后,就可以在文件中添加或修改Core文件相关的设置行。
GDB调试Core文件相关命令
启动GDB调试Core文件:
gdb <可执行文件名> <Core文件名>
。
例如,gdb myapp core.myapp
,这里myapp
是可执行程序的名字,core.myapp
是生成的Core文件的名字。
查看调用栈信息:
bt
命令(backtrace) :在GDB中输入bt
,可以打印出程序崩溃时的调用栈轨迹。这有助于快速定位在哪个函数调用过程中程序出现了问题。
bt full
命令 :除了函数调用栈的信息外,bt full
还会显示每个栈帧中局部变量的值,提供更详细的信息来帮助分析崩溃原因。
查看栈帧细节:
frame <帧编号>
通过bt
命令得到栈帧编号后,可以使用frame <帧编号>
来查看特定栈帧的详细信息。例如,frame 2
会显示编号为2的栈帧的详细内容,包括该栈帧对应的函数名、参数值、局部变量值等。
查看变量信息:
print <变量名>
如print my_variable
会显示my_variable
的值。
查看程序源代码(如果有):
list <行号或函数名>
list my_function
会显示my_function
函数的源代码部分。