当前位置: 首页 > article >正文

回顾复习1:

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:

一、基础配置

  1. git config --global user.name "Your Name":设置全局用户名。
  2. git config --global user.email "your_email@example.com":设置全局用户邮箱。

二、初始化仓库

  1. git init:在当前目录创建一个新的 Git 仓库。

三、添加和提交文件

  1. git add <file>:将指定文件添加到暂存区。例如,git add index.html
  2. git add.:将当前目录下的所有修改过的文件添加到暂存区。
  3. git commit -m "Commit message":提交暂存区的文件,并添加提交信息。例如,git commit -m "Added new feature"

四、查看状态和历史

  1. git status:查看当前仓库的状态,显示哪些文件被修改、哪些文件已暂存、哪些文件未被跟踪等。
  2. git log:查看提交历史,显示每个提交的哈希值、作者、日期和提交信息。
  3. git log --oneline:以简洁的方式显示提交历史,每个提交只显示一行信息。
  4. git diff:查看工作区和暂存区之间的差异。
  5. git diff --staged:查看暂存区和上一次提交之间的差异。

五、分支操作

  1. git branch:列出所有分支。
  2. git branch <branch_name>:创建一个新分支。例如,git branch new-feature
  3. git checkout <branch_name>:切换到指定分支。例如,git checkout new-feature
  4. git merge <branch_name>:将指定分支合并到当前分支。例如,在主分支上执行git merge new-feature将把“new-feature”分支合并到主分支。

六、远程仓库操作

  1. git remote add <remote_name> <remote_url>:添加一个远程仓库。例如,git remote add origin https://github.com/your_username/your_repo.git
  2. git push <remote_name> <branch_name>:将本地分支推送到远程仓库。例如,git push origin main将本地的“main”分支推送到名为“origin”的远程仓库。
  3. git pull <remote_name> <branch_name>:从远程仓库拉取最新的更改并合并到当前分支。例如,git pull origin main从“origin”远程仓库的“main”分支拉取更新。
  4. git clone <remote_url>:克隆一个远程仓库到本地。例如,git clone https://github.com/your_username/your_repo.git

七、撤销操作

  1. git reset <file>:取消对指定文件的暂存,将其从暂存区移除并恢复到工作区的未暂存状态。
  2. git reset --hard <commit_hash>:回退到指定的提交,丢弃自该提交之后的所有更改。

八、标签操作

  1. git tag <tag_name>:为当前提交创建一个轻量级标签。
  2. git tag -a <tag_name> -m "Tag message":创建一个带注释的标签,并添加标签信息。
  3. 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系统中,可以使用vivim来编辑/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函数的源代码部分。


http://www.kler.cn/news/365322.html

相关文章:

  • arcgis中dem转模型导入3dmax
  • WPF的UpdateSourceTrigger属性
  • 修改huggingface的缓存目录以及镜像源
  • SAP_SD模块-销售订单创建价格扩大10倍问题分析及后续订单价格批量更新问题处理
  • AIGC智能提示词项目实践(1):深入MySQL高级语法,提升开发效率
  • 毕业设计—基于 Inception-ResNet模型的皮肤癌分类系统实现
  • pycharm导出环境安装包列表
  • 在 Qt 中实现一个数据采集程序
  • 如何在算家云搭建GPT-SOVITS(语音转换)
  • redis5.0 cluster一个机器维修迁移到另外一个机器
  • 合合信息亮相PRCV大会,探讨生成式AI时代的内容安全与系统构建加速
  • 超越OpenAI GPT-4o,Yi-Lightning指南:中国AI大模型新巅峰
  • Ubuntu 20.04上安装Docker-CE社区版
  • 使用 rbenv 安装 Ruby 2.7.5
  • 华为HCIE-OpenEuler认证详解
  • 快速创建一个微信小程序,详细步骤以及示范程序代码
  • python项目实战——多线程爬虫
  • java如何部署web后端服务
  • Vue3 学习笔记(五)Vue3 模板语法详解
  • 【揭秘】图像算法工程师岗位如何进入?
  • Java:数据结构-二叉树
  • pta-java-6-1 jmu-Java-04面向对象进阶-01-接口-匿名内部类ActionListener
  • SpringBoot实现mysql多数据源配置(Springboot+Mybatis)
  • 模拟信号采集显示器+GPS同步信号发生器制作全过程(焊接、问题、代码、电路)
  • Java调用大模型 - Spring AI 初体验
  • [ 钓鱼实战系列-基础篇-8 ] 一篇文章教会你选择适合的钓鱼项目并设计钓鱼页面