KalosAner Blog

「山穷水复疑无路,柳暗花明又一村。」

json-c库对象释放问题

环境: CST 2024 aarch64 aarch64 aarch64 GNU/Linux 头文件: #include <json-c/json.h> 编译选项: gcc xxx.c -o xxx -Wall -g -O0 -std=gnu99 -ljson-c 1. 对象创建函数 函数签名 说明 ...

Valgrind 检测内存泄漏问题

Valgrind 是检测程序内存泄漏的非常好的工具。对于需要检测的程序需要在编译时加上 -g 选项来保留调试信息,并且建议禁用优化(-O0),避免优化干扰错误定位。 使用 使用之前需要通过 sudo apt install valgrind 进行安装。 然后直接使用 valgrind --leak-check=full ./your_program 来检测程序是否有内存泄漏问题。 其他一些...

在C语言中运行 dpkg 出现 install ok unpacked 的问题

问题: 在 C 语言中使用 system(“dpkg -i xxx.deb”) 安装软件包时软件包卡在 install ok unpacked 状态。 原因: 程序运行在 Linux 上,后台运行,执行 system(“dpkg -i xxx.deb”) 终端已经被关闭,标准流(0,1,2)中 1 和 2 指向的“文件”(类似 /dev/pts/9,其实是个伪终端)显示 deleted。大...

MacOS 上 Iterm2 分屏切换

command + t:新建窗口 command + w:关闭窗口 command + d:垂直分屏 command + shift + t:水平分屏 command + ] or conmand + [:最近使用的分屏切换 command + 数字:切换标签页 command + 方向键:按方向切换标签页 shift + command + s:保存当前窗口快照 command + alt...

Linux 上启动脚本有时候查不到进程

问题: 在 Linux 上写的 shell 死循环脚本然后通过 ./a.sh & 启动之后,通过 ps aux | grep a.sh查不到进程号。 解决方法 在脚本的最头上添加 #!/bin/bash,脚本会根据这个找到默认的 sh 执行器,并在之后还可以在 ps aux | grep a.sh 查找到这个进程。

软件开发经验

在一线做了十年的开发,经历了网易、百度、腾讯研究院、MIG 等几个地方,陆续做过 3D 游戏、2D 页游、浏览器、移动端翻译 app 等。 积累了一些感悟。必然有依然幼稚的地方,就当抛砖引玉,聊为笑谈。 一、对于团队而言,流程太重要了 行军打仗,你需要一个向导;如果没有向导,你需要一个地图;如果没有地图,至少要学习李广,找一匹识途的老马;如果你连老马也没有,那最好可以三个臭皮匠好好讨论...

打包 deb 时需要注意的东西

在打包 .deb 包时,文件名、路径、元数据的大小写和下划线需严格遵守规则,否则可能导致安装失败或冲突。以下是关键注意事项: 1. 包命名规则(control 文件) 只允许小写字母:包名必须全小写(如 my-package),禁止大写(如 My-Package ❌)。 允许字符:小写字母(a-z)、数字(0-9)、加号(+)、连字符(-)、点(.)。 禁止下划线:包名...

Neovim 配置出错

问题 使用 Neovim 0.11 配置 treesitter 时总是报错如下,安装 Lunarvim 同样如此。 Error in decoration provider “win” (ns=nvim.treesitter.highlighter): Error executing lua: …2/share/nvim/runtime/lua/vim/treesitter/language...

在 ubuntu 上打包安装 deb 遇到的问题

环境:ubuntu aarch64 文件结构 打包需要按照格式放置文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 myapp/ ├── usr/ │ └── bin/ │ └── myapp # 可执行文件 └── DEBIAN/ │ ├── control │ ├── postinst │ ├── postrm │ ├──...

ssh -T git@github.com 失败

问题: windows 系统,浏览器可以访问 github.com,但是 ssh -T git@github.com 失败。 解决: 在 ~/.ssh 下添加 config 文件,写入 1 2 3 4 Host github.com Hostname ssh.github.com Port 443 User git 并且确保 ~/.ssh 里边没有 known_hosts 文件。...