C 获取程序名称的 4 种方法:`__progname`、`argv[0]`、`/proc/self/exe` 与 `GetModuleFileName`
在 C 程序里获取“当前程序名”没有单一标准答案,不同平台和目标适合的方法并不一样。本文把 `__progname`、`argv[0]`、`/proc/self/exe` 和 Windows 的 `GetModuleFileName` 分开讲清楚,并补上各自能拿到的是“名称”还是“完整路径”,方便你按平台快速选型。
在 C 程序里获取“当前程序名”没有单一标准答案,不同平台和目标适合的方法并不一样。本文把 `__progname`、`argv[0]`、`/proc/self/exe` 和 Windows 的 `GetModuleFileName` 分开讲清楚,并补上各自能拿到的是“名称”还是“完整路径”,方便你按平台快速选型。
![C 获取程序名称的 4 种方法:`__progname`、`argv[0]`、`/proc/self/exe` 与 `GetModuleFileName`](https://img.ipython.cn/uploads/20260824/17875199186a8b63ae3cd34120923431.webp)
这篇文章围绕 iOS 中静态库与动态库的常见误解做了逐条拆解,重点纠正“.framework 一定是动态库”“动态库天然更省包体积”“多个 App 可共享自定义动态库”等说法,并给出主包、扩展、启动速度与包大小之间更符合实际的判断标准。

这篇文章用 Debian 环境下最常见的入门路径,梳理 JavaScript 脚本从安装 Node.js、编写文件到运行验证的完整流程,同时补充 npm 初始化项目和安装第三方模块的实际作用,方便新手快速判断该用哪些命令、哪些步骤可以先做、哪些可以后补。

这篇文章整理了 Ubuntu 下为 PhpStorm 安装、启用和维护插件的常见做法,包括界面安装、JetBrains Toolbox 管理和离线手动安装三条路径,并补充了版本兼容、来源安全和额外配置这些容易踩坑的细节。 在 Ubuntu 上使用 PhpStorm 时,插件往往决定了调试、测试和框架开发的效率,但不少人卡在安装入口、离线导入或装完后不生效这些细节上。

CentOS 安装 Python 没有唯一答案:系统自带包适合快速落地,源码编译适合追新版本,Pyenv 适合多版本切换,Anaconda 则偏向数据科学。本文按使用场景拆解四种常见方案,附命令、版本要点和避坑提示。

把 Go 程序部署到 CentOS 并注册成系统服务,核心只有两部分:编译可执行文件,以及为 systemd 写好服务配置。本文按实际部署顺序梳理编译、注册、启动、自启和排错要点,适合刚接触 Linux 服务化的开发者快速上手。

这篇文章按 CentOS 上搭建 C++ 测试环境的实际顺序,整理了从更新软件包、安装开发工具组到编译运行示例程序的完整流程,并补充了编辑器、CMake、GDB 和常用开发库的按需选择,方便快速判断哪些组件必须装、哪些可以后补。

在 Debian 里共享 JS 文件,关键不在“能不能共享”,而在于访问环境、性能需求和安全边界是否匹配。本文按 Samba、NFS、SSHFS 三种常见方案拆开讲,并补上权限、所有者和端口配置,方便你直接判断该选哪一种。

在 Ubuntu 与本地设备之间共享 PhpStorm 项目,常见方案并不止一种。本文按远程服务器、团队协作、局域网访问和直接挂载四类场景,梳理 SFTP、Git、Samba、SSHFS 的配置步骤、优缺点与适用边界。 PhpStorm 连接 Ubuntu 共享代码,看起来只是“选一个传文件的方法”,实际却关系到同步效率、协作方式和后续维护成本。

CentOS 安装 Python 没有单一标准答案,关键在于部署目标、版本要求和对系统稳定性的容忍度。本文按 Yum、源码编译、Pyenv 和虚拟环境四条路径拆解适用场景、操作步骤与常见故障,帮助你在不破坏系统 Python 的前提下选出合适方案。

这篇文章用一个最小可运行示例,演示在 CentOS 中把 Go 代码编译成可供 C/C++ 链接的静态库。重点包括 Go 环境安装、`//export` 与 `import "C"` 的写法、`-buildmode=c-archive` 的产物,以及 `gcc` 链接时 `-lmylib` 的命名规则。 很多项目并不是纯 Go 环境,尤其在 CentOS 服务器或老的 C/C++ 工程里,常见需求是把一段 Go 逻辑编成静态库直接接入。

这篇文章用一个基于 aarch64 macOS 的 C 语言小实验,把“协程”拆回到寄存器、栈和调度的层面。重点不是造可用框架,而是说明有栈协程最小实现需要保存什么状态、如何切换执行流,以及为什么这类代码很容易踩到 ABI 与内存访问问题。
